option
要素のオブジェクトを渡すときに、select
要素のng-modelに問題があります。だから、私たちはテーブルから列の配列は、(表の定義)columns
と呼ばれていると想像して、私たちは、この定義選択した要素のオブジェクトを使って角型モデルを作成するにはどうすればよいですか?
var columns = [
{name: 'Account ID', type: 'numeric'},
{name: 'Full name', type: 'text'},
{name: 'Date of birth', type: 'date'},
{name: 'Active', type: 'boolean'}
// and so on
];
var filters = [{}];
HTML時にいくつかのフィルタをレコード生成したいと思います:
<div class="form-field" ng-repeat="filter in filters">
<select ng-model="filter">
<option value="" disabled>Choose filter</option>
<option ng-repeat="column in columns" ng-value="column">{{column.name}}</option>
</select>
<input type="text" ng-model="filter.value">
</div>
することができますように私はcolumn
の値を取得することfilter
をたいと思い、見て、私のフィルタは可能性がある瞬間ので、それに特定のデータを追加するよう:
[
{name: 'Account ID', type: 'numeric', value: 123},
{name: 'Active', type: 'boolean', value: 'Yes'}
]
とにかく、これがこれを行う方法であるかどうかはわかりませんが、コントローラー内の多くのjsコードに書き込むことで、どのようにこの動作を達成できるのかを知りたいと思います。
私はfilter
を更新し、type
プロパティを取得、columns
配列内の列を見つけ、filter
とcolumn.name
を渡し、これはng-change
を使用して成し遂げるためにいくつかの回避策をしましたが、私は本当にへのシンプルな答えがあると思いますこの。
を私は1.1を使用することplunkerを更新しました。 5とそれはまだ正常に動作します。 – noj
Hmmm、wierd ...それはplunkerで動作しますが、私のローカルマシンでは動作しません。とにかく...なぜ 'filter.value'にバインドされているのに' filter'に直接バインドされていないのでしょうか?何とか私はテーブルの定義と同じ構造が必要です:) –
これは、子スコープの値を設定するときにjavascriptがどのように動作するかに起因します。コメントで説明するのはちょっとですが、[この質問](http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs )。これを回避するには、ng-repeatループの '$ index'プロパティを使用して値を設定します。更新された[plunker](http://plnkr.co/edit/C3ojySE0x6XbDwHkCD7u?p=preview)を参照してください。 – noj