没有模板的角度组件表达式绑定

时间:2016-05-27 12:45:16

标签: angularjs angularjs-scope angularjs-components

我正在尝试从我的组件输出我的范围数据,但是很难在没有本地模板的情况下弄清楚如何做到这一点。

出于不同的原因,我需要将标记放在HTML文件中,而不是使用js load

进行解析

到目前为止,这是虚拟代码:( codepen:http://codepen.io/anon/pen/qNBBRN

HTML:

<comp>
  {{ $ctrl.testing }}
</comp>

非工作JS代码:

angular
      .module('Test', [])
      .component('comp', {
        controller: myCtrl,
      });

function myCtrl() {
  var model = this;
  model.testing = '123';
}

document.addEventListener('DOMContentLoaded', function() {
  angular.bootstrap(document, ['Test']);
});

这就是我想要避免的,即使它有效:

angular
  .module('Test', [])
  .component('comp', {
    controller: myCtrl,
    template: '{{ $ctrl.testing }}',
  });

function myCtrl() {
  var model = this;
  model.testing = '123';
}

document.addEventListener('DOMContentLoaded', function() {
  angular.bootstrap(document, ['Test']);
});

1 个答案:

答案 0 :(得分:1)

您需要的解决方案是使用绑定将组件的内部私有范围与父范围相关联。

<强> JS

angular
  .module('Test', [])
  .component('comp', {
    controller: myCtrl,
    bindings: {
      testing: '='
    }
  });

function myCtrl() {
   var model = this;
   model.testing = '123';
}

<强> HTML

<comp testing="$ctrl.testing">
  {{ $ctrl.testing }}
</comp>

Plunkr示例:http://plnkr.co/edit/jLeDyBTFA9OU7oqK5HSI?p=preview