在angularjs中无法更改控制器中的1个arg?

时间:2017-08-05 13:24:35

标签: angularjs angularjs-scope

这是我的角度代码。

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

但是,当我查找不起作用的参数时。

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

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

3 个答案:

答案 0 :(得分:0)

范围是HTML(视图)和JavaScript(控制器)之间的绑定部分。这是一个特殊的角度。

请阅读此https://www.w3schools.com/angular/angular_scopes.asp

答案 1 :(得分:0)

'$ scope'是AngularJS中的一项特殊服务。 但是,您可以创建自己的服务'$ para'并根据需要注入它。

检查this

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

答案 2 :(得分:0)

Angular根据给定的参数名称使用依赖注入。它不知道$para,所以它不会被注入。但是,您可以使用数组表示法,其中您明确说出要注入的服务的名称。如果你最小化你的javascript代码,那么数组表示法也是必要的,这样当你的变量被重命名为ab等时,angular仍然知道要注入什么:

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";
    });
相关问题