【问题标题】:Dynamic ng-init set value in AngularjsAngularjs中的动态ng-init设置值
【发布时间】:2016-03-17 08:03:47
【问题描述】:

我想在页面加载时启动ng-init。我有task.idRestangular 获取,我的html 是:

<textarea rows="5" ng-model="comment.comment_text"></textarea>{{task.id}}
<input type="hidden" ng-model="comment.task_id" ng-init="comment.task_id = $scope.task.id">   
<button type="submit" class="btn btn-success" ng-click="create(comment)">Send</button>

和角度控制器:

$scope.create = function(comment) {
     console.log(comment);
};

当点击按钮在控制台显示结果时:

{comment_text: "test", task_id: undefined }

但我想这样显示:

{comment_text: "test" ,task_id:53}

【问题讨论】:

  • 应该是 ng-init="comment.task_id = task.id" 没有 $scope
  • 我测试了但是不行
  • 你能分享你的完整代码给你建议
  • 我解决了添加 ng-if="task.id!==undefined" 的问题。如何在没有ng-if 的情况下解决问题

标签: javascript angularjs ng-init


【解决方案1】:

试试:

ng-init="comment.task_id = task.id"

或者你可以从控制器设置

$scope.comment.task_id  =$scope.task.id

或输入值

<input type="hidden" ng-model="comment.task_id" value="{{task.id}}" />  

【讨论】:

  • 是否存在$scope.task.id?
  • 我解决了添加 ng-if="task.id!==undefined" 的问题。如何在没有ng-if 的情况下解决问题
  • 我建议的三种方法都行不通? :) 重新检查 $scope 的“任务”对象已经推送到视图。你能在你的控制器中显示完整的代码吗?
  • 谢谢,但我想用 ng-init 实现。第二个解决方案是正确的,但我想用你的第一个解决方案来实施。
  • 不错! :) 将您的部分代码(足以运行)发布到codepen.io,然后我们可以找到最佳解决方案。
【解决方案2】:

试试

<textarea rows="5" ng-model="comment.comment_text"></textarea>{{task.id}}
<input type="hidden" ng-model="comment.task_id" ng-init="comment.task_id = task.id">   
<button type="submit" class="btn btn-success" ng-click="create(comment)">Send</button>

【讨论】:

  • 我解决了添加 ng-if="task.id!==undefined" 的问题。如何在没有ng-if 的情况下解决问题
猜你喜欢
  • 1970-01-01
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
相关资源
最近更新 更多