次の Rails HAML があります。
= select_tag "some-class",
options_for_select([['None', '']], ''),
{ class: 'some-other-class',
'ng-model' => 'someModel',
'ng-options' => 'option.name for option in someList',
'ng-change' => 'updateSelected()'}
角度コントローラー:
scope.updateSelected = ->
#logic for updating model lives here. Model updates successfully by using some values defined within scope. Includes the following:
scope.someModel = "some_new_value"
角度ディレクティブ:
SomeClassDirective= ->
restrict: 'C'
link: (scope, element, attrs) ->
monitorFormFields = (newValue, oldValue) ->
console.log "this is the inner function call"
#logic for setting the inner _destroy field lives here
scope.$watch 'someModel', monitorFormFields
ただし、選択リストの値が変更されると、「これは内部関数呼び出しです」は出力されません (ディレクティブが最初に初期化されるとき、つまりページの読み込み時に出力されます)。したがって、私の質問は次のとおりです: $watch 式がトリガーされないのはなぜですか?どうすればトリガーできますか?
ありがとう!