我是AngularJS的新手,只是在玩这些东西。这是我的HTML:
<div ng-app ng-controller="nameController">
<input type="text" value="Jack" ng-model="fname" />
<input type="text" value="Sparrow" ng-model="lname" />
{{getFullName()}}
</div>
<input type="text" value="Hello" />
这是控制器代码:
function nameController($scope) {
$scope.getFullName = function () {
return $scope.fname + " " + $scope.lname;
};
}
我使用value
属性设置了输入文本字段的值。所以我希望控制器函数getFullName
读取这些值并在页面加载时返回全名。但我得到的是:
undefined undefined
输入文本框为空。为什么会这样?
答案 0 :(得分:1)
如果您想要这些输入的默认值,请使用模型并将其设置为控制器中$scope
的属性:
function nameController($scope) {
$scope.fname = "Jack";
$scope.lname = "Sparrow";
$scope.getFullName = function () {
return $scope.fname + " " + $scope.lname;
};
}
然后,您可以从标记中删除value
属性。这样可以使数据与视图完美分离。这是一个working example。
或者,您可以使用ngInit
指令:
<div ng-app ng-controller="nameController" ng-init="fname = 'Jack'; lname = 'Sparrow'">
<input type="text" ng-model="fname" />
<input type="text" ng-model="lname" />
{{getFullName()}}
</div>