我正在消除"范围汤"遵循本指南的传统Angular 1.5应用程序的体系结构:http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components.html#replace-external-reference-with-bound-input
我试图删除对$rootscope.taskui
的引用,因此我尝试添加对该组件的绑定。不幸的是,taskui
现在未定义。 "组件"是一个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)
}
}
答案 0 :(得分:2)
问题是对angularjs范围的误解。使用隔离范围时,仅绑定变量是不够的。您还必须将值作为属性传递。请在此处查看解决方案#3:https://stackoverflow.com/a/17900556/555493
代码(使用原始示例)应为:
// component
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
// parent template
<component taskui="taskui"></component>