2016-05-17 4 views
4

私は、角度で選択ボックスで働いていますし、呼び出されないさんNG-変更機能のように表示されます。変更機能が呼び出されておらず、エラーもありませんか?

updateForm: function(){ 
    console.log('test'); 
    }, 

これまでのところ、すべてが正常のように動作し、ドロップがダウンしてすべてを示しています。

<select 
    data-ng-options="choice.id as choice.singular for choice in model.doseUnitChoices" 
    data-ng-model="ucumId" 
    data-ng-change="updateForm()" 
    class="form-control input-sm"> 
    <option value=""></option> 
</select> 

私は必要最低限​​を行うためのcontroler機能にコードを単純化している:これは、選択のためのコードですドロップダウンで任意のオプションを選択すると直ちに最後のオプションに戻り、何かを意味する可能性があります。変更機能は呼び出されず、エラーもコンソールに表示されません。どのように私はこの問題をデバッグし、何が間違って見つけることができるかについての任意のアイデア?

UPDATE:ページ上の要素を検査すると、選択したとして、実際にすべての選択要素のが記載されていることである一方、興味深いことに、私が発見し、多分モデルとして使用されているデータとの問題はありますか?それに

+0

だけ小さなQを、固定しましたか? –

+0

"angle.extend($ scope、{"と私は正常にヒットし、他のonclickイベントからスコープ内の他の関数を使用しています。変更機能を呼び出すことができます。 –

+0

これは最初のものであることを確認したかっただけです –

答えて

3

私は、問題は、質問の範囲外の二つの問題によって引き起こされていたことを発見:この選択は、私はすべての選択オプションがあることを原因と推測され、呼び出されたとき

  1. ucumIdは存在しませんでしたどういうふうに選んだの?
  2. 上記のエラーは、すべてのオプションが「選択」することが原因となったので、関係なく、私が何をしたかの選択にそれはそう何の変化が発生していないた値を更新したことがありませんか?とにかく必ず 'ucumId' を存在すること

あなたは `$のscope`に` updateForm`を結合していることを確認私が抱えていた問題で、

2

を見て、私はちょうどそれを複製しようとしたと最小限のコードで、それが正常に動作します。

<html> 
<body ng-app="app" ng-controller="myController"> 
    <select 
     data-ng-options="choice as choice.label for choice in model.doseUnitChoices" 
     data-ng-model="ucumId" 
     data-ng-change="updateForm()" 
     class="form-control input-sm"> 

     <option value=""></option> 
    </select> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js "></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js "></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js "></script> 
    <script> 
     angular.module("app",[]).controller("myController", myController) 

     function myController($scope) { 
      $scope.ucumId = ""; 

      $scope.updateForm = function(){ 
      console.log('test'); 
      }; 

      $scope.model = {} 

      $scope.model.doseUnitChoices = [ 
       {id: 1, label: "one" }, 
       {id:2, label: "two" } 
      ] 

     } 
    </script> 
</body> 
</html> 

どこかに小さなタイプミスがあり、どこかでupdateFormが再定義されているか、コントローラがどこかで再定義されていると思われます。私は、実際のコードをペアにして、それが動作しているか何かが得られるまで作品を一枚ずつ削除することをお勧めします。

+0

実際には 'Model'はありませんコントローラーと更新フォームで使用している$ scope変数は$ scope関数です –

+2

codepenはおそらくこの時点で素晴らしいでしょう。 :) –

関連する問題