根据$ state.params从<select>菜单动态设置项目

时间:2016-10-28 19:38:45

标签: javascript angularjs select

我正在开发一个功能,用户可以重新发布之前提交的项目,其中包括将数据从当前项目传递到$ scope.params.project,归档现有项目,并重定向到用户可以重新提交项目的PostProject页面,根据需要调整表单中的详细信息。 我们的想法是使用$ scope.params中的作业数据填充PostProject表单,这样用户就不必再次填写所有这些内容。 我已成功使用此功能填充常规&lt; input&gt;字段,所以我知道数据正在传递。我无法通过&lt; select&gt;查找有关如何执行此操作的文档然而,下拉菜单。我发现的一切都告诉我使用ng-model来设置&lt; select&gt;菜单为默认值。 但是,我需要将菜单设置为基于$ scope.params的值,并将该值设置为提交表单时的模型。我很难过。 这是HTML。假设$ state.params.project是预期的JS对象,并且$ state.params.project.service_type是postOppCtrl.services数组中存在的字符串,我认为这就是演示该问题所需的全部内容。 来自HTML: &lt; select ng-if =&#34; $ state.params.project&#34;         NG-模型=&#34; postOppCtrl.postOppProjForm.service_type&#34;         ng-options =&#34;类别为postOppCtrl.services中的类别类别&#34;         //这个部分不起作用,我不确定还有什么可以尝试的。         NG-值=&#34; $ state.params.project.service_type&#34;         &LT; /选择&GT;

2 个答案:

答案 0 :(得分:0)

您可以尝试在select标记中使用ng-init来初始化值:

ng-init="postOppCtrl.postOppProjForm.service_type = $state.params.project.service_type

答案 1 :(得分:0)

我通过使用$ scope从我的控制器设置模型来解决这个问题。

在我的PostOpportunityController中,我有:

vm.postOppProjForm = {};

我将其替换为:

 vm.postOppProjForm = { service_type: $state.params.project.service_type };