2016-05-11 5 views
0

デバッグでハードコードされた値3000を使用する代わりに、定数を使用して式を使用してアクセスできますか?コードの下で試してみましたが、動作しません。親切に助けてください。ng-model-optionsでdebounce内の式を使用する方法

ng-model-options="{ updateOn: 'default blur', debounce: {'default': 3000, 'blur': 0} }" 

ng-model-options="{ updateOn: 'default blur', debounce: {'default': '{{banking.timeout}}', 'blur': 0} }" 
+1

だけbanking.timeoutが動作しませんか? '{default:banking.timeout、blur:0}' – YOU

+0

banking.timeoutを与えている間は、デフォルトのデバウンス値を取っていて、定数(3秒)に記載されている値ではありません。 – user1645290

+0

角のデフォルト値は500msなので、3000は設定したものですが、後でbanking.timeoutに設定したいとします。そして、角度のソースコードによると、ngModelOptionsで$ observeを実行しません。つまり、一度設定すると、テンプレートがレンダリングされる前にIMOを設定する必要があります。 – YOU

答えて

1

""のない式を使用してください。

<input type="text" 
     ng-model="model.value" 
     ng-model-options="{ updateOn: 'default blur', debounce: {'default': debounceDuration, 'blur': 0} }"> 

コントローラー:

angular 
.module('app', []) 
.controller('AppController', function ($scope) { 
    $scope.model = { 
    value: '' 
    }; 

    $scope.debounceDuration = 500; 
}); 

私は彼の実装でJSBinを作成しました:https://jsbin.com/riforo/1/edit?html,js,console,output

+0

$ scopeを使用して、あなたが提供したJSbinをチェックしましたが、私は使用しています var banking = this; banking.timeOut = 3000; そのように設定されていますが、デフォルト値のみを使用しています。これも一度確認できますか? – user1645290

+0

OK。コントローラーを構文として使用しようとしましょう –

+0

'controllerAs'構文はコントローラー変数を使う変形例に過ぎないので、これは機能します。更新されたJSBinを参照してください:https://jsbin.com/riforo/2/edit?html,js,console,output –

関連する問題