我正在使用Trigger.io为Android和iOS构建移动应用。不幸的是,在Android上,通过webview组件的日期和时间文本字段不使用本机日期选择器和时间戳。 Trigger.io有一个API调用,允许你使用本机控件,但我很难弄清楚如何使它工作。
我已经使用Angular.js指令 工作了,我对此并不十分熟悉。这是我的代码:
if (forge.is.android())
{
app.directive("ngNative", function() {
return {
restrict: "A",
require: "?ngModel",
link: function(scope, elm, attrs, ngModel) {
elm.on('blur', function() {
scope.$apply(function() {
ngModel.$setViewValue(elm.val());
});
});
ngModel.$render = function() {
forge.logging.info("Render value: " + ngModel.$viewValue);
elm.val(ngModel.$viewValue || '');
};
ngModel.$setViewValue(elm.val());
attrs.$observe('id', function(id) {
forge.logging.info('Trying to enhance #' + id);
forge.ui.enhanceInput('#' + id);
});
}
};
});
}
我的想法是使用该代码,我应该能够使用ngNative属性标记控件,而angular将使用输入的ID调用forge.ui.enhanceInput API。
无论如何,这主要是有效的。但是,$ render函数似乎没有被调用,我不知道为什么。因此,当输入控件被渲染时,它不会填充模型的数据。但是,当我在字段中输入内容时,它会更新模型的数据。
是否有人使用指令或其他手段解决了这个问题?任何帮助将不胜感激。
感谢。