2017-08-05 66 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

相關問題