我想使用ng-init以编辑形式显示输入文本框的默认值,但无论我做什么,我都无法做到。
这是我写的。
在控制器中:
.controller('ProfileCtrl', function ($scope, $http) {
$http.get('users.php').then(function (result) {
$scope.data = result.data;
$scope.username = $scope.data.username;
$scope.email = $scope.data.email;
$scope.phone = $scope.data.phone;
});
在视图中:
<label class="item item-input item-stacked-label">
<span class="input-label">Username</span>
<input type="text" ng-model="formData.username" placeholder="Email" ng-init="formData.email={{username}}">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Phone</span>
<input type="text" ng-model="formData.phone" placeholder="0815********" ng-init="formData.phone='{{phone}}'">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Email</span>
<input type="text" ng-model="formData.email" placeholder="" ng-init="formData.email='{{email}}'">
</label>
我还尝试撰写ng-init="formData.email={{email}}"
和ng-init="formData.email=email"
,但仍无效。
答案 0 :(得分:1)
所以你的主要问题是设置ng-init,首先如果你想设置它,就像你在ng-init里面时不应该使用{{ scopevar }}
,而只是scopevar
。
但即便如此,也没有理由这样做,就像你在尝试一样。 在字段上设置数据模型后,它会在您获取数据时自动更新 - angular会为您完成所有操作,只需按照以下示例进行设置:
.controller('ProfileCtrl', function ($scope, $http) {
$http.get('users.php').then(function (result) {
$scope.formData = result.data;
});
});
从代码中删除ng-inits。
<label class="item item-input item-stacked-label">
<span class="input-label">Username</span>
<input type="text" ng-model="formData.username" placeholder="Email" >
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Phone</span>
<input type="text" ng-model="formData.phone" placeholder="0815********" >
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Email</span>
<input type="text" ng-model="formData.email" placeholder="">
</label>
另外,我用简化的例子做了一个小提琴。 https://jsfiddle.net/pegla/9mqz8drh/1/
答案 1 :(得分:0)
<label class="item item-input item-stacked-label">
<span class="input-label">Username</span>
<input type="text" ng-model="formData.username" placeholder="Email" >
从代码中删除ng-init。像这样保持你的控制器
.controller('ProfileCtrl', function ($scope, $http) {
$http.get('users.php').then(function (result) {
$scope.formData = result.data;
});
});