无法绑定到 Angular 1.5 组件中的根作用域
Cannot bind to rootscope in Angular 1.5 component
我正在按照本指南消除遗留 Angular 1.5 应用程序的 "scope soup" 架构:http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html#replace-external-reference-with-bound-input
我试图删除对 $rootscope.taskui
的引用,因此我尝试向组件添加绑定。不幸的是,taskui
现在未定义。 "component" 是一个 Angular 1.5 组件(这只是引擎盖下的一个普通指令)。我做错了什么吗?
如果您将 "this.taskui" 替换为“$rootscope.taskui”(正确注入),method
会很好地打印 taskui 对象。
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
控制器代码如下:
class Controller {
constructor() {
this.method = () => console.log(this.taskui)
}
}
问题是对 angularjs 范围的误解。使用独立作用域时,仅仅绑定一个变量是不够的。您还必须将该值作为属性传递。请在此处查看解决方案 #3:
代码(使用原始示例)应为:
// component
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
// parent template
<component taskui="taskui"></component>
我正在按照本指南消除遗留 Angular 1.5 应用程序的 "scope soup" 架构:http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html#replace-external-reference-with-bound-input
我试图删除对 $rootscope.taskui
的引用,因此我尝试向组件添加绑定。不幸的是,taskui
现在未定义。 "component" 是一个 Angular 1.5 组件(这只是引擎盖下的一个普通指令)。我做错了什么吗?
如果您将 "this.taskui" 替换为“$rootscope.taskui”(正确注入),method
会很好地打印 taskui 对象。
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
控制器代码如下:
class Controller {
constructor() {
this.method = () => console.log(this.taskui)
}
}
问题是对 angularjs 范围的误解。使用独立作用域时,仅仅绑定一个变量是不够的。您还必须将该值作为属性传递。请在此处查看解决方案 #3:
代码(使用原始示例)应为:
// component
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
// parent template
<component taskui="taskui"></component>