Javascript angularjs ng模型设置默认值

Javascript angularjs ng模型设置默认值,javascript,angularjs,Javascript,Angularjs,如何在angularjs模型上设置默认值?如果可能的话,我正在寻找类似的东西: div.form-multiple(ng-model='story.r || []', form-multiple="form-multiple") 现在,story.r只是没有定义。我想先充一下 这是我的指令。奇怪的是,如果$modelValue已经有一个数组,它就可以正常工作,但如果它只是未定义,它就不能正常工作 .directive('formMultiple', function() { return

如何在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');

在链接函数中。

谢谢,但我想知道如何为ng-model设置任意默认值。你的意思是:ng init='story.r=1'@Harry如果不是我在回答中给出的,你介意解释一下你的意思吗?很抱歉,评论不清楚。我认为在控制器中设置它是无法维护的。我宁愿在指令或html中设置它。这是
的方法。因为您在我的帖子中使用了一个指令,controller=directive,但在您编辑之前我没有意识到这一点。我现在给你一个更具体的解决办法。