2017-02-28 5 views
0

私はasp.net MVC 5を使用しており、Html.CheckBoxForを使用してチェックボックスを作成しています。私はAJAX呼び出し後angularjs editFormDataを設定する画面にそのIが出力として{{editFormData}}が、チェックボックスがチェックされているものとして示されていない場合、値が正しいAngularJS ng-modelを使用してHtml.CheckBoxForを更新するとどうなりますか?

<div class="col-md-6"> 
    @Html.CheckBoxFor(m => m.active, new { 
     @class = "form-control populate", @id = 'EditActive', 
     @ng_model = "editFormData.active" 
    }) 
</div> 

結果オブジェクトには、真または偽として正しく表示されているアクティブなフィールドが含まれています。

チェックボックスのひげそりバージョンを確認するにはどうすればよいですか?

+0

'$ scope.editFormData'の値をどのように設定しますか? AJAXコールバックの後に 'active:true'を設定したいですか(' editFormData'とAJAXコールバックコードの両方を表示する方が良いでしょうか?) –

+0

@TetsuyaYamamoto私はangularjsで質問を更新しました。 resultオブジェクトの内部にはactiveというプロパティがあります。 – SolidSnake4444

+0

'response.data.ResultObject'はどのように見えますか(私はPOST後にJSONオブジェクトを返します)?結果データの直列化を試して、 'ng-model'の' active'プロパティ値を明らかにしてください: '$ scope.editFormData = @ Html.Raw(JsonConvert.SerializeObject(response.data.ResultObject));'または 'JSON.stringify'コントローラは別のJSファイルに置かれます。 –

答えて

0

私はそれを理解しました。どうやら特定の値を変更するときには、$ scope.apply()が必要になることがあります。これらのケースが何であるかはわかりませんが、私はそれを追加しました。

datatableApp.controller('EditFormController', ['$scope', '$http', function($scope, $http) { 
    $scope.getEditStreet = function(streetID) { 
     $http.post('@Url.Action(Model.GetFormControllerFunctionName, Model.GetFormControllerName)', "{ @Model.JavascriptEditPropertyName : " + streetID + "}").then(function(response) { 
       alert("success"); 
       $scope.editFormData = response.data.ResultObject; 
       $scope.$apply(); 
      }, 
      function(response) { 
       alert("fail" + response.statusText); 
      }); 
    }; 
}]); 
関連する問題