scope上绑定的函数找不到

加载顺序问题service>controller>directive

在controller里是抓不到directive绑定在scope上的函数的

因为controller代码的初始化执行是在directive之前的,
即加载的时候先运行controller的代码,然后运行directive里的代码

原型继承的问题

必须是在父作用域上创建的,才能继承,在子作用域上创建的,在父作用域是引用不到的

基本类型会重新创建变量,引用则不会,而只有对象上是引用

$scope.name='Roger' 
//无法双向绑定,如果你在directive里修改name,controller里面是不会改变的

$scope.user={}
$scope.user.name='Roger'
//这个就可以

而且,scope上的user这个对象,必须是在父作用域(controller)上创建的,才能继承,你在子作用域(directive)上创建的对象,不是继承父作用域,怎么双向绑定,父作用域怎么访问呢?

//directive.js
scope.user={};
scope.user.name='Roger';

//在controller.js你想初始化一个值
$scope.user.name='Jenny'; //user is undefined

所以最后我自己的解决办法是
先在controller里面声明user,$scope.user={}
然后在directive里面

if(typeof(scope.user)==="undefined"){
    scope.user={}
}

然后你可以在controller里面为directive初始化数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值