angularjs ng-model设置默认值

时间:2013-06-30 23:16:28

标签: 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()
      });

    }
  };
})

1 个答案:

答案 0 :(得分:1)

由于您使用的是指令,因此您需要的是:

ngModel.$setViewValue('something');

在链接功能中。