2017-08-05 51 views
0

这是我的角码。无法在angularjs中更改控制器中的1个参数?

angular.module("app", []).controller("ctrl", function($scope){ 
    $scope.name = "Name"; 
}); 

但是,当我chaged参数不工作。

angular.module("app", []).controller("ctrl", function($para){ 
    $para.name = "Name"; 
}); 

如何使它工作,我们不能在我们的其他功能中使用它?

回答

0

Angular使用基于给定参数名称的依赖注入。它不知道$para,所以它不会被注入。但是,您可以在明确指出要注入的服务的名称的地方使用数组表示法。该数组符号也是必要的,如果你减少你的JavaScript代码,使角仍然知道当你的变量会马上重新命名为a注入什么,b等:

angular.module("app", []).controller("ctrl", ["$scope", function($para){ 
    // $para is the $scope object 
    $para.name = "Name"; 
}]); 

如果您$para是一种服务,你必须注册它使角度知道要注入什么:

angular.module("app", []) 
    .service("$para", function() { 
     // 
    }) 
    .controller("ctrl", function($para){ 
     $para.name = "Name"; 
    }); 
0

'$范围' 是AngularJS一个特殊的服务。 但是,您可以创建自己的服务'$ para'并根据需要进行注入。

检查this

此外,如果您不想使用'$ scope',则可以使用替代的'controller as'语法。 阅读关于here

相关问题