带范围的角度设置表单?
问题描述:
我想要的是一种可用于创建和更新的表单。所以我通过显示之前通过带范围的角度设置表单?
$scope.form = {};
$scope.car = null;
$scope.getCar = function(hash) {
$http.get('/cars/'+hash).success(function(car) {
$scope.car = car;
$scope.form = car;
});
};
正如你所看到的,我将get的结果添加到汽车和窗体。 现在我打开查看:
<h1>{{ form.name }} <small>shows correctly</small></h1>
但行之后,我试图几乎相同:
<form class="list" ng-submit="createOrUpdateForm(form)">
<label class="item">
<span class="input-label">Name</span>
<input type="text" ng-model="form.name">
这不是出...但是当我添加同一行之后它是这样的:
<input type="text" ng-model="car.name">
这样做的工作,但后来我不能使用ng-submit了,因为那个引用形式。
形成一些原因,我不能设置窗体范围?
答
你不应该手动分配任何东西给form
。 “表单”与您使用表单管理的数据不一样。在这种情况下,空对象{}
和car
都没有意义。
给表单一个名称,这将允许角度将其分配给范围属性。
<h1>{{ car.name }} <small>shows correctly</small></h1>
<form name="carForm" ng-submit="createOrUpdateForm(carForm)">
<label class="item">
<span class="input-label">Name</span>
<input type="text" ng-model="car.name">
$scope.createOrUpdateForm = function(form) {
if(form.$valid) {
console.log($scope.car.name);
// POST/PUT your data.
}
};
困惑,因为你覆盖与'car'初始目标是怎么回事。 “汽车”是一个物体吗?也不确定你需要2个具有相同'汽车'值的范围变量。创建一个复制问题的演示 – charlietfl