【发布时间】:2016-09-07 05:51:21
【问题描述】:
当我尝试在包装在 IIFE 中的指令中定义控制器时,我似乎遇到了错误。虽然我可以通过在 tableHelper.html 的 div 上添加 ng-controller 来解决这个问题。我想知道下面的代码将 tableHelperCtrl 返回为未定义。
使用 angular.js 1.2.29
app.module.js
(function () {
'use strict';
angular.module('app', [
]);
})();
tableHelper.controller.js
(function () {
'use strict';
angular
.module('app')
.controller('tableHelperCtrl', tableHelperCtrl);
function tableHelperCtrl() {
var vm = this;
vm.data = 'some data'
}
})();
tableHelper.directive.js
(function () {
'use strict';
angular
.module('app')
.directive('tableHelper', tableHelper);
function tableHelper() {
var directive = {
restrict: 'A',
templateUrl: './src/app/tableHelper/tableHelper.html',
link: link,
controller: tableHelperCtrl,
controllerAs: 'vm'
};
return directive;
}
}
})();
tableHelper.html
<div>
<p>Table Helpers Directive</p>
<table>
<thead></thead>
<td>{{vm}}</td>
</table>
</div>
【问题讨论】:
-
您需要将
controller: tableHelperCtrl转至controller: 'tableHelperCtrl'