你如何在Angular.js中使用trigger.io enhanceInput()?

时间:2013-10-05 15:54:32

标签: angularjs angularjs-directive trigger.io

我正在使用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函数似乎没有被调用,我不知道为什么。因此,当输入控件被渲染时,它不会填充模型的数据。但是,当我在字段中输入内容时,它会更新模型的数据。

是否有人使用指令或其他手段解决了这个问题?任何帮助将不胜感激。

感谢。

0 个答案:

没有答案