-1

我正在按照本指南消除遗留 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)
   }
}
4

1 回答 1

2

问题是对 angularjs 范围的误解。当使用隔离作用域时,仅仅绑定一个变量是不够的。您还必须将值作为属性传递。在此处查看解决方案#3:https ://stackoverflow.com/a/17900556/555493

代码(使用原始示例)应该是:

// component
export default {
  bindings: {
    taskui: '='
  },
  controller,
  templateUrl: "component.html"
 };

// parent template
<component taskui="taskui"></component>
于 2016-10-27T00:09:30.460 回答