我正在尝试解析由$ index索引的循环的一些字符串并将它们用于datepickers,所以我最终使用$ parse而不是$ eval。
在调试期间,我总是得到这个错误
$parse is not a function
这是指令:
.directive('dispatcherDate', function (DISPATCHER_BROADCAST,$parse) {
return {
restrict: 'A',
require: "ngModel",
link : function(scope, elem, attrs,ngModelCtrl,$parse) {
var attributes = attrs;
scope.$on(DISPATCHER_BROADCAST.stuffLoaded,function(){
var parent = $(elem).parent();
var dtp = parent.datetimepicker({
format: "DD-MM-YYYY HH:mm:ss",
useCurrent: false,
showTodayButton: false,
defaultDate :$parse(attributes.ngModel),
});
dtp.on("dp.change", function (e) {
ngModelCtrl.$setViewValue(moment(e.date).format("DD-MM-YYYY HH:mm:ss"));
scope.$apply();
});
});
}
};
})
我在如何使用$ parse时出错了?是否正确使用$ parse而不是$ eval更正?
答案 0 :(得分:1)
通常,您可以访问ngModel
使用ngModelCtrl.$viewValue
指向的值。
但是如果您想使用$parse
,请从链接功能参数中删除$parse
。您正在为它创建一个新变量,但它没有在那里注入。在声明指令时,它会被注入:
.directive('dispatcherDate', function (DISPATCHER_BROADCAST,$parse) {
另外,解析范围:
defaultDate: $parse(attributes.ngModel)(scope)