指令范围不是通过控制器来的

时间:2017-03-24 18:56:55

标签: javascript angularjs

我们遇到的问题是将示波器放入控制器并将角度版本降级到1.5.3实际上正在修复它。

有人可以帮助我们解决角度1.6.3的问题,或者是否需要以不同方式进行此操作?

请忽略任何语法错误,因为实际代码没有

// Simple Directive 

var directive = {
    restrict: 'EA',
    templateURL: 'sometemplate.html',
    scope: {
        text: '@'
    },
    bindToController: true,
    controllerAs: 'someCtrl',
    controller: 'someController'
}

// someController.js

var self = this;

self.text //this comes back as undefined which is the issue

sometemplate.html 

{{someCtrl.text}} // this works

所以简而言之,范围适用于模板,但在控制器中不可用。

同样如果我们将版本从1.6.3回滚到1.5.3,它就会开始工作..

还尝试将绑定控制器更改为具有与作用域相同的字段的对象,但它不适用于1.6.3。

我们错过了什么吗?

1 个答案:

答案 0 :(得分:0)

这是因为你绑定到控制器。当bindToController设置为true时,所有要继承的作用域值都绑定到controllerAs下提供的变量。在someCtrl提供的名称上查找注入$ scope的值。