-1
ng-controller
指令有兩種實例化控制器的方法。香草和controller as
語法。控制器如何確定它被調用的方式並相應地調整其行爲?確定控制器As控制器的語法
例如:
<div ng-controller="myController" >
<p> {{message}} World </p>
</div>
<div ng-controller="myController as myVm">
<p> {{myVm.message}} World </p>
</div>
<div ng-controller="myController as otherVm">
<p> {{otherVm.message}} World </p>
</div>
我怎樣才能讓我的控制器這項工作?
angular.module("myApp").controller("myController", function($scope) {
function usesClassSyntax() {
//what do i put here?
return true/false
};
if (usesClassSyntax()) {
var vm = this;
} else {
var vm = $scope;
};
vm.message = "Hello";
});
這僅適用於'控制器myVm'。如果控制器使用不同的名稱實例化會怎麼樣?說'控制器爲otherVm'? – georgeawg
您可以將'controller as'的名稱傳遞給控制器並檢查它 –
@CodeBean如果我是正確的,但只有當控制器在DOM中顯式聲明時纔會生效。如果你使用的是像ui.router之類的東西,至少就我所知,它不會以這種方式工作。無論如何,如果您符合您的命名約定,您可以重複使用相同的「控制器名稱」。我爲每個視圖控制器使用'vc',並且只在非常罕見的情況下才會嵌套'vc's – jusopi