2017-06-17 4 views
0

Angualr JSを使用してアプリケーションを構築しています。Angular JSでボタンをクリックしたときに入力ボックスのvalueプロパティを更新する方法

編集ボタンをクリックしたときにRestaurantフィールドを更新したいとします。これはSpicy Kitchenの場合、編集ボタンをクリックするとEdit Spicy Kitchen Infoとなり、入力ボックスのすべての値が自動的に更新されます。

私のスクリーンショットは、入力ボックスの

$scope.name = 'Restaurant' 
$scope.update = function (restaurant) { 
     $scope.name = restaurant.name 
     console.log('from update: ', $scope.name) 
    } 

コードは以下の通りです、Screenshot

<div class="panel panel-default" ng-repeat="restaurant in restaurants"> 
        <div class="panel-heading"> 
         <h3>{{restaurant.name}}</h3> 
         <h5>{{restaurant.address}}</h5> 
         <h5><strong>Cuisine Offered</strong> {{restaurant.cuisine}} 
         </h5> 
         <button class="btn btn-primary" style="float: right;" ng-click="update(restaurant); editRestaurant(restaurant)">Edit</button> 
        </div> 

今すぐアップデート機能は、以下のようなものです、以下のように

Name:<input type="text" value="{{name}}" ng-model="name" /></td> 

である場合にはI編集ボタンの値をクリックすると正しく表示されます。私はそれらを慰めた。しかし更新中ではありません。 Angular JSでそれを行うには?

editRestaurantはそれがビューのスコープ値に応じて更新されていないことになります

$scope.editRestaurant = function (restaurant) { 


     console.log(restaurant) 

    } 
+0

? – Sajeetharan

+0

editRestaruantを削除するための別の関数は必要ありません。console.log( 'from update:'、$ scope.name);の中には何が表示されますか? ? – Sajeetharan

+1

*「更新していません」* ....何も更新していないのですか?特定の問題は明確ではありません。私たちは完全な[mcve] – charlietfl

答えて

0

、以下のようなものです。 これは、角度にお​​いて典型的である、あなたは、たとえば$タイムアウトを使用してダイジェストサイクルをトリガすることにより、この問題が発生することができます

$scope.update = function (restaurant) { 
    $timeout(function() { 
    $scope.name = restaurant.name 
    console.log('from update: ', $scope.name) 
    }); 
} 

いけない、あなたのコントローラで$タイムアウトを宣言することを忘れeditRestaurantの内側にあるもの

.controller('SomeCtrl', function($scope, $timeout) 
関連する問題