我是角色的新手并拥有以下指令:
angular.module('myApp')
.directive('myDirective', function () {
return {
templateUrl: '/views/partial-views/partial.html',
restrict: 'E',
controller : function(){
age : '5'
},
controllerAs : 'myCtrl'
};
});
我想在partial.html中的age.html中包含年龄,如下所示:
<div ng-app="myApp" ng-controller="myCtrl as s">
{{s.age}}
</div>
但是我收到以下错误:
Error: [ng:areq] Argument 'myCtrl' is not a function, got Object
有谁能告诉我我做错了什么?
答案 0 :(得分:2)
Chandermani提到的绝对正确。为了更加精确,可以写成,
指令定义
angular.module('myApp')
.directive('myDirective', function () {
return {
templateUrl: '/views/partial-views/partial.html',
restrict: 'E',
controller: ['$scope', function($scope){
$scope.age = '5'
}]
};
})
用法的
<div ng-app="myApp">
<my-directive>
{{age}}
</my-directive>
</div>
但是,这里没有定义指令的意义。您只需使用控制器定义即可完成相同的操作。
答案 1 :(得分:1)
您的代码存在两个问题。首先,您不要在模板中使用ng-controller
再次为控制器设置别名,以便需要将其移除。
其次控制器是一个函数而不是对象,所以使用:
this.age = '5';