2017-04-21 4 views
0

<select>タグに基づいていくつかの特殊な動作が発生しています。テンプレートのどこに配置するかによって、ドロップダウンが空になっているようです。AngularJS <select>テンプレート内のプレースメントによってはドロップダウンが空です

<div ng-if="admin.editingRole"> 
    <select ng-options="role.name for role in $data.roles" ng-model="admin.editRole"></select> 
</div> 

をしかし、私は別の場所で正確に同じ要素が含まれる場合:たとえば、これは動作します

<div> 
<label for="role">Role</label> 
<select ng-options="role.name for role in $data.roles" ng-model="admin.editRole"></select> 
</div> 

ドロップダウンは空です。なぜ私はこのことが起こるのか理解できません。

+0

コンソールにエラーがありますか? '$ data'プロパティが存在するスコープの外に' select'を置いた可能性があります。 –

+0

@MikeMcCaughan - いいえ、コンソールにエラーはありません。私はAngularの新作ですが、テンプレート全体で$データが利用できるという印象を受けました。それは間違っていますか? – jwBurnside

+1

私は$ dataに慣れていません...少しの研究は、それがng-tableと関係があることを示していますか? [この回答](http://stackoverflow.com/a/29508201/215552)によると、廃止されているので、私は何が起こっているのか分からないのではないかと心配しています。 –

答えて

0

元の開発者がgetData()メソッドを使用して、理解できるものから$ dataオブジェクトを作成していたようです。そのスコープはビュー内に含まれるテーブルのみです。非難され、文書化されていないと思われるので、少し混乱していました。そのため、ビューのどこでも$ data変数にアクセスできませんでした。

関連する問題