方法调用 传参的疑惑 谢谢老师

来源:5-11 搜索页业务逻辑编写(1)

wy111111

2017-02-22

58ad519c0001d77105000393.jpg

58ad519c0001620305000185.jpg

想请教一下老师,

这里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回答

慕雪1613582

2017-02-22

通过查看指令相关源码可以看出指令在执行回调函数的时候使用的是内置服务$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 的部分

0
3
慕雪1613582
回复
wy111111
嗯~~~~
2017-02-23
共3条回复

Angular JS 仿拉勾网 WebApp 开发移动端单页应用

基于AngularJS,仿拉勾网开发一个招聘类的移动端单页应用

1660 学习 · 857 问题

查看课程