如何将值从控制器传递到angularjs中输入HTML?

时间:2016-05-23 04:32:11

标签: javascript html angularjs

如何在我的视图中将控制器中的值传递给<input>标记?我成功获得了数据,但是从html调用它,它不起作用?我没有得到任何错误,我的语法错误,我尝试使用angularjs文档中的几个语法库,我也尝试使用ng-value={{data.email}}甚至在值之间放置双引号。这样做的正确方法是什么?

这是我的HTML:

<label class="item item-input">
    <input type="text" placeholder="Email" value={{data.email}} disabled>
</label>

这是我的控制者:

$http({
    method: 'POST',
    url: 'myservice',
    data: encodedString,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data) {
    for (i = 0; i < data.length; i++) {
        if (data[i].QActivationCode === data[i].token) {
            $scope.userData = data[i];
            Acct.setAcctEmail(data[i].email);
        }

    }
});

3 个答案:

答案 0 :(得分:2)

您可以使用ng-modelng-value。您在视图中使用了错误的密钥,即您应该在HTML视图中使用userData.email而不是data.email。 (声明$scope.userData = data[i];声明您要在范围中添加密钥userData而不是data):

使用ng-model

<label class="item item-input">
    <input type="text" placeholder="Email" ng-model="userData.email" disabled>
</label>

使用值

 <label class="item item-input">
    <input type="text" placeholder="Email" value={{userData.email}} disabled>
</label>

由于input字段已禁用,我们无需更改该输入字段,因此您应使用第二个选项。

答案 1 :(得分:1)

在角度中,ng-model用于将范围值与html元素绑定。或者,如果我们必须将值传递给输入标记,我们可以使用{{}}表达式。

关于ng-model的小描述:

ngModel指令使用NgModelController将输入,select,textarea(或自定义表单控件)绑定到作用域上的属性,该指令由此指令创建和公开。 ngModel负责:将视图绑定到模型中,其他指令如input,textarea或select require。

更正后的html代码如下:

1. <label class="item item-input">
    <input type="text" placeholder="Email" ng-model="userData.email" disabled>
</label>

2. <label class="item item-input">
    <input type="text" placeholder="Email" value={{userData.email}} disabled>
</label>

答案 2 :(得分:0)

使用ng-model

<label class="item item-input">
  <input type="text" placeholder="Email" ng-value="data.email" disabled>
</label>

确保范围内存在对象数据。