2015-10-29 12 views
5

これはしないでください。私はそれを動作させることができないので。私のコントローラで角度 - スコープ変数を使用してモデルを設定する

私は

$scope.test = "someValue" 

を持っており、私の見解では

<input ng-model="test" /> 

は私がしかし

<input ng-model="someValue" /> 

を発生するように期待しています何を、NG-モデルがに設定されているものとしてとどまります"テスト"。

どうすれば解決できますか?

+0

設定する属性は何ですか?またはそのテキスト値は "someValue"ですか? –

答えて

0

コントローラコードを表示します。しかし、私はそれがうまくいくはずであることを以下に実証しました。

angular.module('myApp', []); 
 

 
angular.module('myApp').controller('myCtrl', function($scope) { 
 
    $scope.test = "somevalue"; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="myApp"> 
 
    <form ng-controller="myCtrl"> 
 
    <input type="text" ng-model="test" /> 
 
    </form> 
 
</body>

ng-modelだけ結合オブジェクトを表します。それは変更されません。どのような変更がvalueで、これはng-modelオブジェクトが取り込む値に相当します。

2

これは方法ではないng-modelが動作します。スコープ変数がある場合は、testのようになり、この変数の値はinputのvalueプロパティに反映されます。つまり、someValueinputに表示されます。言い換えれば、ng-modelは、例えばにバインドする指令です。 NgModelControllerを使用してスコープのプロパティに入力、選択、テキストエリア(またはカスタムフォームコントロール)を追加します。

ngModelControllerは、ngModelディレクティブのAPIを提供します。 コントローラは、データバインディング、バリデーション、CSS 更新のサービスが含まれ、その値が書式ここで

を解析例である:

var app = angular.module('myApp', []); 
 

 
app.controller('TestController', TestController); 
 

 
function TestController() { 
 
    var vm = this; 
 

 
    vm.myModel = "This is the model value"; 
 
    vm.selectedOption = undefined; 
 

 
    vm.options = [{ 
 
    id: '1', 
 
    name: 'Option A' 
 
    }, { 
 
    id: '2', 
 
    name: 'Option B' 
 
    }, { 
 
    id: '3', 
 
    name: 'Option C' 
 
    }]; 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> 
 

 
<body ng-app="myApp" ng-controller="TestController as vm"> 
 
    <input type="text" ng-model="vm.myModel" /> 
 

 
    <select name="mySelect" id="mySelect" ng-model="vm.selectedOption"> 
 
    <option ng-repeat="option in vm.options" value="{{option.id}}">{{ option.name }}</option> 
 
    </select> 
 
    
 
    <pre ng-if="vm.selectedOption">Selected Option: {{ vm.selectedOption }}</pre> 
 
</body>

また、上の例いくつかのベストプラクティスとは、ビューの構文をcontrollerAsとし、コントローラの署名を明確に宣言することを意味します。

+0

ありがとう、私は常にベストプラクティスのヒントを探しています。私はこれを私のビューでは簡単な入力のために働かせることができますが、私が望むものではありません。私が抱えている問題は、選択したプラグインを使用している 'を確認できます。 – LordTribual

関連する問題