为什么在$ scope执行AngularJS时表单不会更新

时间:2015-03-15 14:06:03

标签: angularjs forms

所以我有一个表单,当我加载表单时,我用它调用一个函数。该函数用一些数据填充表单。

$scope.fill = function {

                            $scope.formData.name = 'Sara';
                            console.log($scope.formData.name);

                        })

在索引视图中,我有以下内容:

<div class="form-group">                
<input type="text" class="form-control" name="name" ng-model="formData.name"></div>

所以当我按下按钮时:

<button ng-controller="formController" ui-sref="front.form.profile" ng-click="fill()">Fill</button>

我希望有关名称的表单用我定义的值填充。

我遇到的问题是$ scope已更新,在console.log上我得到名称sara但表单仍为空且未更新&gt;

我在函数的末尾添加了$ scope.apply(),但它没有做任何更改。 请帮忙

2 个答案:

答案 0 :(得分:3)

纳克控制器=&#34;的FormController&#34; UI-SREF =&#34; front.form.profile&#34;纳克单击=&#34;填充()&#34;

你也创建了子控制器,$ scope也是子范围,这样如果改变子范围的值,&#34; $ scope.formData.name&#34;父母的范围没有改变。

你可以通过指令使用双向绑定。 参考文献:https://docs.angularjs.org/guide/directive

我希望这对你有所帮助!

答案 1 :(得分:2)

您的按钮有自己的控制器:

<button ng-controller="formController"

仅为按钮创建子范围。去掉它。您还应该创建ui-sref属性,因为您不需要按钮来填充表单,而不是导航到另一个状态。