2013-08-30 188 views
2

我使用angularjs v1.0.7。我有一個隱藏的表單域,它的值與其他輸入值有關。在http://jsfiddle.net/4ANaK/的例子中,隱藏字段沒有更新,因爲我在文本輸入域中鍵入。Angularjs隱藏輸入字段不更新

<div ng-controller="MyCtrl"> 
    <form ng-submit="action()"> 
     name:<input ng-model="name" type="text" value="you name"> 
     <input ng-model="nice_name" type="hidden" value="Mr {{name}}" > 
     <input type="submit"> 
    </form> 
</div> 

var app=angular.module('myApp', []); 

function MyCtrl($scope) { 
    $scope.name = "David"; 

    $scope.action = function(){ 
     alert($scope.nice_name);     
    } 
} 

如何解決這個問題?

+0

我不認爲Angular注重這樣的價值屬性。你想達到什麼目的?有一個隱藏的表單字段被提交,從範圍變量計算? –

+0

出於某種原因,我必須控制由服務器端生成的html中的隱藏字段,而不是js控制器代碼。 – qichunren

+0

好的,看看我更新的答案。 –

回答

2

嘗試1

添加此到控制器解決您的提琴。它也解決你真正的問題嗎?

$scope.$watch('name', function (value) { 
    $scope.nice_name = 'Mr ' + value; 
}); 

http://jsfiddle.net/4kySW/


嘗試2

好吧所以怎麼樣呢?這完全是在視圖中完成的。

http://jsfiddle.net/4kySW/1/

<input ... ng-change="nice_name = 'Mr ' + name" ng-init="nice_name = 'Mr ' + name"> 

編輯

貌似ng-init是沒有必要的。

+0

這不是真的解決我的問題,出於某種原因,我想控制它在服務器端生成的HTML,而不是在JS控制器代碼。 – qichunren

+1

完美!非常感謝。 – qichunren