指令定义函数,用scope定义一个接口,父控制器接收后为什么变成两个参数?
来源:5-11 搜索页业务逻辑编写(1)

qq_发潮烧_0
2017-03-25
在tab.html中点击调用click(item)函数。在tab.js中处理这个函数,$scope.tabClick(tab),这是的参数tab,应该是一个对象{id:'city',name:'城市'}。通过tabClick: '&'设置一个接口。在app-tap这个指令上调用tab-click="tClick(id,name)",这时变成了两个参数。这时console出来的是“city 城市”。为什么从一个对象$scope.tabClick(tab)变成了tClick(id,name)两个参数,是什么拆解的,不太明白。
写回答
3回答
-
慕雪1613582
2017-03-25
和传入对象的属性名有关系。只能传入对象参数拥有的属性名称,如: //指令中 var item = { id: 'mk', name: 'imooc', aaa: 'balabala' }; $scope.tabClick(item); //视图中 tab-click="tClick(abc)
00 -
慕粉1900438865
2017-04-23
想了半天原来这个原因,同问,
最后一个应该是tab-click='tClick(a,b,c)'?打错了?
00 -
qq_发潮烧_0
提问者
2017-03-25
我刚才看您回答其他同学的,$scope.tabClick(tab)必须要传入一个json对象格式的参数,通过内置的逻辑,把他解析了。因为这个json对象里面有两个值,id:city,name:城市。 所有调用时tClick(id,name)是拆分成两个参数,如果这个json里面有三个值。那调用时tClick(id,name,xxx)。就会拆分成三个参数呗?
012017-04-23
相似问题