2016-08-19 13 views
0

私はモデルを以下のようにレンダリングするためにMVCかみそりを使います。ng-modelはhtml入力が値を持っていても空白の値を返します

@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()関数を追加しようとしましたが、エラーも返されました。

おかげ

Iは、別のHTML入力から値を割り当てることによって、これを解決しました。

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

、最終的にカミソリビューから

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

を使用して、それを解決しました。

+1

変数のスコープの値を更新していない;'あなたのコントローラでは、もちろんそれは空になります。 – Claies

+1

また、angleは入力上の 'value'から' ng-model'の値を設定しません。サーバー側から値を設定する必要がある場合は、値をグローバル変数(推奨されません)として設定するか、 'ng-init'を使用する必要があります。 http://stackoverflow.com/a/13771205/2495283 – Claies

+0

を参照してください。@Claiesええ私は、それがなくても、それでも私に価値を与えてくれなかったので、私のテストでその行のコードを配置しました。 – cafekun

答えて

1

あなたは特別 `$ scope.formData.formno =「」を持っている

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

OK、私は今アプローチを得る。私はコントローラからモデルを更新するためにJQueryを使用しました。 $ scope.formData.formno = $( '#FormNo')。val(); ありがとう! – cafekun

+0

@cafekunそのアプローチが働いている間は、ちょっと醜いですが、効率的ではなく、実際には意図した設計パラダイムで角度を使用していません。これは可能な限りDOMとのやりとりを避けるためです。 – Claies

+0

@ Claiesあなたは何ができると思いますか?私は本当に私の視点をレンダリングするために剃刀を使用したかったのです。どんな助けもありがとう。 – cafekun

関連する問題