動的 ID を持つ入力にディレクティブを追加しようとすると、link メソッドがオブジェクトに適切にバインドされません。次のjsfiddleまたは htmlがあるとします。
<div ng-app="myApp" ng-controller="MyCtrl">
<p>Date: <input type="text" id="datepicker-{{id}}" datepicker></p>
</div>
そしてjs:
var module = angular.module('myApp', []);
module.directive('datepicker', function() {
var linker = function(scope, element, attrs) {
element.datepicker();
}
return {
restrict: 'A',
link: linker
}
});
function MyCtrl($scope) {
$scope.id = 7
}
コンソール デバッガーに表示されるのは、リンクが呼び出されると、ID が "datepicker-7" ではなく "datepicker-{{id}}" として表示されることです。
これを強制的に発生させる方法はありますか?これを実装するより良い方法はありますか?
更新:明確にする必要があります。クリックすると日付ピッカーが表示されますが、日付をクリックしても機能しません。次のエラーが表示されます:「この日付ピッカーのインスタンス データが見つかりませんでした」