我有一个简单的angularjs指令,当我缩小文件时,我得到错误,因为变量名称已更改
var app= angular.module('app',[]);
app.directive('directive',function(){
return {
restrict: 'EA',
scope: {},
replace: true,
link: function($scope, element, attributes){
$scope.name="test-test";
,
controller: function($scope,$attrs,$http){
},
templateUrl: 'directives/app/app.tpl.html'
}
});
问题是$ scope.name更改为a.name而angular没有识别它。 我尝试通过尝试类似
来注入$ scopelink: ['$scope',function($scope, element, attributes){
$scope.name="test-test";
}],
controller: ['$scope','$attrs','$http',function($scope,$attrs,$http){
}],
但是在缩小时我仍然会得到同样的a.name错误。
答案 0 :(得分:1)
未注入指令link
函数。它们传递了一组固定的参数,这些参数在angular.js documentation中列出并全面描述。但controller
并非如此。这些是注射的,应该在缩小之前注释。你可以用至少3种方式做到这一点:
$inject
属性,其值为可注入的名称数组答案 1 :(得分:0)
链接功能不是依赖注入的。它仅使用位置参数,因此您不必使用该显式数组命名。我认为控制器很好。
最后,请记住,为了清晰起见,您必须编写代码。显式语法有点过于冗长,这就是大多数人选择使用ng-annotate
的原因。 Ng-annotate是一个编译步骤,它将在缩小之前将代码转换为显式形式。