2016-02-04 75 views
0

我想要的是一種可用於創建和更新的表單。所以我通過顯示之前通過帶範圍的角度設置表單?

$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了,因爲那個引用形式。

形成一些原因,我不能設置窗體範圍?

+0

困惑,因爲你覆蓋與'car'初始目標是怎麼回事。 「汽車」是一個物體嗎?也不確定你需要2個具有相同'汽車'值的範圍變量。創建一個複製問題的演示 – charlietfl

回答

1

你不應該手動分配任何東西給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. 
    } 
};