をエミュレートし、私は例えば、私はこのようなものを作成して、いくつかの型の安全性のための私のコントローラロジックにいくつか列挙型を紹介したい:Angular.jsとNG-スイッチ-とき - 列挙
var app = angular.module('myApp', []);
var StateEnum = Object.freeze({"login":1, "logout":2})
function LoginCheckCtrl($scope) {
$scope.stateEnum = StateEnum
$scope.loginData = StateEnum.login
$scope.login = function() {
console.log($scope.loginData ? 'logged in' : 'not logged in');
$scope.loginData = StateEnum.logout;
};
$scope.logout = function() {
console.log($scope.loginData ? 'logged in' : 'not logged in');
$scope.loginData = StateEnum.login;
};
}
をし、私の例では
<div ng-controller="LoginCheckCtrl">
<div ng-switch on="loginData">
<div ng-switch-when="stateEnum.login" ng-include="'login'"></div>
<div ng-switch-when="stateEnum.logout" ng-include="'logout'"></div>
</div>
</div>
<script type="text/ng-template" id="login">
<button ng-click="login()">Login</button>
</script>
<script type="text/ng-template" id="logout">
<button ng-click="logout()">Logout</button>
</script>
しかしng-switch-when
が動作するように望んでいない:ページ私はこのような何かを持っているでしょう。私がng-swith-when
の値を手作業で整数(例えば1,2)に置き換えた場合にのみ機能します。ここで
は、この実証するフィドルです:あなたが見ることができるように、最初のものは明らかに動作しない、2つ目の作品、今
を - それは時にボタンを変更する意味しますボタンをクリックします。
私が思う問題はvar StateEnum = Object.freeze({"login":1, "logout":2})
です。
私のHTMLでenumを使うことができるので、ng-switch-when
は(2番目のフィドルのように)正しく動作しますか?
[OK]を、しかし、問題は、私はどのように管理していない。だから、これは使用されています私のenums、サービスが良いアイデアであっても、事は "ビュー" - htmlは私のenumで動作していないようです - 最初のフィドルではケースは一致しません。 – Andna
外部ビューが定義されていますか?私はlogin.htmlがどこにあるのかを知ることは難しいです。私はplunkrを使うことをお勧めします。 – lucuma
私は外部ビューafaikを持っていない、すべてのhtmlはhtmlボックスにあります – Andna