2016-08-19 35 views
0

我使用MVC剃刀渲染下面的模型。即使html輸入有值,ng-model也會返回一個空白值

@Html.HiddenFor(u => u.FormNo, new { @ng_model = "formData.formno" }) 

當查看源代碼時,html輸入有一個值。

<input id="FormNum" name="FormNum" ng-model="formData.formno" type="text" value="154S00017"> 

但是角度將其作爲控制器中的空白值返回。

var url; 
var controller = 'Inbox'; 
var action = 'Get_RCTS_FormHistory'; 
var RCTS = angular.module('RCTS', []); 

    RCTS.controller('historyController', function ($scope, $http) { 
     $scope.formData = {}; 
     $scope.formData.formno = ''; 
     url = "/" + controller + "/" + action + "?FormNo=" + $scope.formData.formno; 
     alert(url) 
     $http.get(url).success(function (data) { 

      $scope.logs = data; 


     }); 
    }); 

而且在Visual Studio中調試時。

debug

我是相當新的角度,這真讓我惱火。我試圖在控制器上添加一個document.ready()函數,但它也返回一個錯誤。

感謝

我通過分配從另一個HTML的輸入值解決了這個。

$scope.formData.formno = $('#FormNo').val(); 

,並最終通過使用

@Html.HiddenFor(u => u.FormNo, new { @ng_model = "formData.formno",@[email protected] }) 

從Razor視圖解決它。

+1

的價值,你特別有'$ scope.formData.formno =「」;'在你的控制器,當然這將是空的。 – Claies

+1

另外,angular並沒有在輸入上設置'ng'的值,如果您確實必須從服務器端設置值,則需要將該值設置爲全局變量(不推薦)或使用'ng-init'。請參閱http://stackoverflow.com/a/13771205/2495283 – Claies

+0

@Claies是的,我把那行代碼放在那裏與我的測試,因爲即使沒有它,它仍然沒有給我價值。 – cafekun

回答

1

你沒有更新的範圍變

$scope.formData.formno = 'cakefun'; 
+0

好的,我現在就開始了。我使用JQuery從控制器更新模型。 $ scope.formData.formno = $('#FormNo')。val(); 謝謝! – cafekun

+0

@cafekun雖然這種方法*工作*,但有點難看,效率不高,而且您確實沒有在其預期的設計範例中使用角度,這是爲了儘量避免與DOM交互。 – Claies

+0

@Claies你認爲可以做什麼?我真的想用Razor來呈現我的觀點。任何幫助將不勝感激。 – cafekun

相關問題