私の質問の視覚化を見るためのリンク リンク
私は完全に迷っています。SOの返信をたくさん読んだ(最も近い問題はここにあった)
html:
<div title="Employment start date"
ng-model="tabsData.employment_start_date"
input-date="{{dateFormats.getCurFormat()}}"></div>
(カスタム ディレクティブで) 日付値を表示および編集する必要があります。OUTER ng-model ( tabsData.employment_start_date ) をINNER ng-model ( ??? ) で
(双方向に) バインドする方法は? <datepicker>
(以下のスニペットのng-model<---------- HERE !!!
attrへの署名タグレットを参照してください。ここでは、双方向バインディングを過去に渡す必要があります)<datepicker>
ある種のディレクティブを持つ:
directive('inputDate', function factory(dateFilter) {
return {
require:'^ngModel',
restrict:'A',
replace: true,
template:'<div class="control-group">
<div class="controls">
<label>{{title}}</label>
<input class="dateInputValue"
ng-model="formattedDate"
readonly
ng-click="showPicker=!showPicker"/>
<div class="datePickerBlock">
<button class="datePickerBtn"
ng-click="showPicker=!showPicker">
<i class="whhg icon-calendar"></i>
</button>
<datepicker
class="datePicker"
show-hide="{{showPicker}}"
ng-model=" ??? " <--------------------- HERE !!!!
show-weeks="true"
starting-day="1"
date-disabled="disabled(date, mode)">
</datepicker>
</div>
</div>
</div>',
link:function (scope, elm, attrs, ngModelCtrl) {
ngModelCtrl.$formatters.unshift(function (modelValue) {
scope.formattedDate = dateFilter(modelValue, attrs.inputDate || 'medium');
return scope.formattedDate;
});
ngModelCtrl.$parsers.unshift(function(viewValue) {
var date = new Date(viewValue);
return isNaN(date) ? '' : date;
});
}
};
});
さらに、2 番目の質問に加えて、テンプレートをtemplateUrlプロパティに置き換えると、次を
templateUrl: '/cached/ui-elements/inputBool.html'
参照するのはなぜですか。
/* Template */
angular.module("/cached/ui-elements/inputDate.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("/cached/ui-elements/inputDate.html",
"<div class=\"controls\">\n"+
"<input class=\"dateInputValue\" " +
"ng-model=\"ngModelLocal\" " +
"readonly " +
"ng-click=\"showPicker=!showPicker\"/>\n"+
<MY-DATEPICKER ng-model="ngModelLocal"></MY-DATEPICKER>
"</div>"
}]);
attrs.dateFormatは{{dateFormats.getCurFormat()}}
STRING と同じです! (以前のテンプレートプロパティのように $scope で実際の式の実行結果を返すことはありません)
みんな助けて ;)