javascript - angularjs ng-model设置默认值

标签 javascript angularjs

如何在 angularjs 模型上设置默认值?如果可能的话,我正在寻找这样的东西:

div.form-multiple(ng-model='story.r || []', form-multiple="form-multiple")

现在 story.r 只是未定义的。我想预填它。

这是我的指令。奇怪的是,如果 $modelValue 已经有一个数组,它就可以正常工作,但如果它只是未定义,则不会。

.directive('formMultiple', function() {
  return {
    require: '?ngModel',
    link: function(scope, elm, attr, ngModel) {
      if (!ngModel)
        return

      function pushIntoArray () {
        if(ngModel.$modelValue && elm.find('input:last').val() != '') { // this works fine
          ngModel.$modelValue.push(scope.formMultipleDefault)
          scope.$digest()
        }
        else if (!ngModel.$modelValue) { 
          ngModel.$modelValue = [scope.formMultipleDefault] // this block does nothing
          console.log(ngModel) // returns $modelValue undefined.
        }
      }


      pushIntoArray()
      elm.on('blur', 'input', function() {
        pushIntoArray()
      });

    }
  };
})

最佳答案

由于您使用的是指令,因此您正在寻找的是:

ngModel.$setViewValue('something');

在链接函数中。

关于javascript - angularjs ng-model设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395715/

相关文章:

javascript - 列出 DOM 对象上的变量和方法

javascript - angularjs选择框默认选择基于数据库id

javascript - 如何在 JavaScript 中验证 EAN/GTIN 条形码

javascript - 设置相对于高度的过渡速度

javascript - 剪切 ng-repeat 中对象参数的字符串长度

angularjs - 如何使用 Angular js中的服务和 Controller 显示模型类中的第一项

angularjs - 如何在 AngularJS 中创建可用于我的方法的自定义对象类

javascript - 缩放后的kinetic.js层宽度

javascript - Tomcat 中的 Gzip 是如何工作的

javascript - 折叠使用 angular js ng-repeat 和过滤器创建的 div