2017-10-31 15 views
1

私はangularjsを使用していますが、私は質問のリストを示す指示文を持っています。私はselectedQuestionが変更されたときにいくつかの論理を行うつもりです。だから、私はng-changeを使った。Angularjs:選択リストの変更 -

これは私のディレクティブです:

restrict: 'EA', 
      scope: {        
       selectedQuestion: '=?', 
       questionsList: '=' 
      }, 
      link: function (scope) { 
       scope.change = function() { 
        if (scope.selectedQuestion) { 
         //do something 
        } 
       }; 
      } 

これは私の指示のためのHTMLテンプレートです:

<select ng-model="selectedQuestion" 
      ng-options="avail.question for avail in questionsList track by avail.id" ng-change="change()" 
    </select> 

    {{selectedQuestion}} 

私はUIリストで質問を変更すると、{{selectedQuestion}}変更はのJSONを表示します質問が選択されました。しかしのscope.change関数は、初期化された(変更されていない)関数と常に同じです。

この問題の原因は何ですか?

答えて

2

ng-change関数にパラメータとしてモデルを渡して試してみてください。

その後
<select ng-model="selectedQuestion" 
     ng-options="avail.question for avail in questionsList track by avail.id" 
     ng-change="change(selectedQuestion)" 
</select> 

あなたのディレクティブで:

link: function (scope) { 
     scope.change = function (currentQuestion) { 
      if (currentQuestion) { 
      } 
     }; 
    } 
関連する問題