【发布时间】:2016-08-19 01:59:30
【问题描述】:
我正在尝试获取模型传递的指令中的值。它在控制器中打印值,但在指令中它是未定义的。 附上代码sn-ps,出错的地方请更新。 非常感谢!!
A) MODEL 中的日期和时间输入类型 -
// 日期选择器
<div class="todo-details-inline">
<span class="todo-header">Due date</span>
<input type="text"
ng-model="vm.task.end_date"
top="45" name="endDate"
class="nc-input"
pickadate-picker date-input-format>
</div>
// 时间选择器
<div style="margin-left:10%;" class="todo-details-inline">
<input ng-model="vm.task.end_time"
name="endTime"
time-input-format
time-picker
taskEndDate="vm.endDate"
placeholder="End Time"
class="nc-input">
</div>
B) 控制器中设置的vm.endDate
//在页面加载时
vm.endDate = vm.task.end_date;
logger.info('in activate,vm.endDate:'+vm.endDate); // prints correct value
// 观看 - 在 val 更新时
vm.endDate = vm.task.end_date;
console.log("updated vm.endDate:"+vm.endDate); // prints correct value
c) 在指令中
angular
.module('app.layout')
.directive('timePicker', timePicker);
function timePicker($timeout) {
var directive = {
require: 'ngModel',
scope: {
from: '=',
to: '@',
format: '@',
min: '=',
initialTime: '=',
selectTime: '=',
taskEndDate:'='
},
link: function($scope, $element, $attrs, ctrl) {
// OTHER CODE
$scope.$watch("taskEndDate", function(value) {
console.log("taskEndDate value:"+value); // UNDEFINED ??
if (value) {
// FURTHER OPRTNs
}
}
}
};
}
【问题讨论】:
标签: angularjs