方法调用 传参的疑惑 谢谢老师
来源:5-11 搜索页业务逻辑编写(1)

wy111111
2017-02-22
想请教一下老师,
这里search.html中tab-click="tClick(id,name)" 传入的方法是两个参数id和name。
而在子级tab.js中调用$scope.tabClick(item)的时候,为什么是传入item这个值,而不是传入item.id和item.name。
我测试过,$scope.tabClick(item.id,item.name)是会报错的,而$scope.tabClick(item)就没有问题。
写回答
1回答
-
通过查看指令相关源码可以看出指令在执行回调函数的时候使用的是内置服务$parse 来解析的。而$parse需要传入json对象来绑定函数作用域,所以你那种传入方式会报错。
case '&': // Don't assign Object.prototype method to scope parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop; // Don't assign noop to destination if expression is not valid if (parentGet === noop && optional) break; destination[scopeName] = function(locals) { return parentGet(scope, locals); }; break;
如果有兴趣可以看下 angular的源码关于$parse 的部分
032017-02-23
相似问题