1
我正在將directive
移植到component
結構,並且一切都很順利 - 除非我有一個動態模板,我正在編譯。除了當我嘗試工作正常傳遞ctrl
到$編譯:
我改變:
$compile($element.contents())($scope);
這是工作 - 到:
$compile($element.contents())(ctrl);
而現在我得到這個錯誤:
child-component.component.js:76 TypeError: b.$watch is not a function
at Object.link (http://localhost:3000/lib/angular/angular.min.js:302:155)
at http://localhost:3000/lib/angular/angular.min.js:16:56
at ja (http://localhost:3000/lib/angular/angular.min.js:81:35)
at m (http://localhost:3000/lib/angular/angular.min.js:66:274)
at g (http://localhost:3000/lib/angular/angular.min.js:58:481)
at g (http://localhost:3000/lib/angular/angular.min.js:58:498)
at g (http://localhost:3000/lib/angular/angular.min.js:58:498)
at g (http://localhost:3000/lib/angular/angular.min.js:58:498)
at http://localhost:3000/lib/angular/angular.min.js:58:119
at http://localhost:3000/js/components/component-group/child-component.component.js:76:54
這裏是一個有一些ctrl元素的例子,因爲我懷疑issu e與綁定。
<div class="box" ng-class="{selected:ctrl.selected == 1}" ng-show="ctrl.selected">
這裏是我的組件聲明:
var childComponent = {
controllerAs: 'ctrl',
require: 'parentComponent',
bindings: {
attrone: '<',
attrtwo: '<'
},
controller: childComponentController
};
function childComponentController(SomeFactory, $rootScope, $compile, $timeout, $element, $scope) {
etc...
我在做什麼錯的遷移?
請提供您的組件聲明。或者至少是基本結構。將指令轉換爲組件時,有幾件事需要修改。這將使診斷問題更容易。 – zilj
@zilj謝謝!我剛添加了我的聲明。 – itamar