【问题标题】:Angular 1.5 - Component() MethodAngular 1.5 - Component() 方法
【发布时间】:2016-02-19 03:45:32
【问题描述】:

我正在尝试让 Angular 1.5 的新组件方法工作。到目前为止,我实现了以下目标,请参阅我的 jsFiddle JSFIDDLE。由于某种原因,我无法使 templateUrl 正常工作,因此我可以看到具有定义范围的 html 模板。任何帮助都会很棒。

JSFIDDLE JS

var app = angular.module('myApp', []);
app.controller('mainCtrl', function($scope) {

   $scope.name = "Tony Danza";


});

app.component("myBox",  {
      bindings: {},
      controller: function($element) {
        var myBox = this;
        myBox.game = 'World Of warcraft';
      },
      controllerAs: 'myBox',
      templateUrl: "/template",
      transclude: true
})

HTML

<div ng-app="myApp" ng-controller="mainCtrl">
  <script type="text/ng-template" id="/template">
    <div style='width:40%;border:2px solid black;background-color:yellow'>
      Your Favourite game is: {{myBox.game}}
    </div>
  </script>



  Hi {{name}}
  <div my-box>
  </div my-box>

</div><!--end app-->

【问题讨论】:

标签: angularjs


【解决方案1】:

Angular 组件必须是元素。使用&lt;my-box&gt; 而不是&lt;div my-box&gt;

The documentation on Components 并未立即说明这一点,但已记录在案。

当你想要一个由属性或 CSS 类而不是元素触发的指令时

The directive/component comparison table 还解释了restrict 不可用于组件,它们始终是元素。

【讨论】:

  • 我想知道组件控制器中 $ 元素的用途?由于组件不是用来操作 dom 的,所以我们仍然使用指令语法中存在的链接函数。
  • @explosion pills 你能帮我解决这个问题吗stackoverflow.com/questions/39252729/…
猜你喜欢
  • 2016-04-10
  • 2016-02-23
  • 1970-01-01
  • 2017-07-27
  • 2017-08-04
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多