我还有一个关于缩小的问题。这次是因为$ scope服务传递给指令的控制器。参见下面的代码:
angular.module('person.directives'). directive("person", ['$dialog', function($dialog) { return { restrict: "E", templateUrl: "person/views/person.html", replace: true, scope: { myPerson: '=' }, controller: function ($scope) { $scope.test = 3; } } }]);
如果我注释掉控制器部分,那么它可以正常工作。
如您所见,我已将数组声明用于指令,因此即使缩小后,Angular也知道$ dialog服务。但是我应该如何为控制器上的$ scope服务执行此操作?
您需要声明一个控制器,如下所示:
controller: ['$scope', function ($scope) { $scope.test = 3; }]
完整示例如下:
angular.module('person.directives'). directive("person", ['$dialog', function($dialog) { return { restrict: "E", templateUrl: "person/views/person.html", replace: true, scope: { myPerson: '=' }, controller: ['$scope', function ($scope) { $scope.test = 3; }] } }]);
@Sam提供的解决方案可以使用,但是这意味着将指令的控制器公开给整个应用程序,这是不必要的。