如何将mvc控制器actionresult参数传递给angularjs控制器

时间:2017-04-21 06:09:30

标签: javascript angularjs asp.net-mvc asp.net-mvc-4

在我的应用程序中,我试图将mvc控制器参数传递给角度控制器。因为我想从另一个api获取数据。

MVC控制器

public ActionResult Hotel(long hotelCode, string Destination)
{ return View(model); }

在视图中我将模型传递给脚本。所以我可以获得角度参数。

查看

<script type="text/javascript">
var data = @Html.Raw(Json.Encode(Model));</script>

AngulerJS控制器

app.controller('ctrl', function ($scope, $q, $window, studentService, filterFilter) {
$scope.datax = $window.data;
$scope.saveSubs = function () {
    var sub = {
        Des: $scope.datax.HotelCode,
        DepartureDate: $scope.datax.Des
    };
    var saveSubs = APIService.hotelavailability(sub);
    saveSubs.then(function (d) {
        console.log("Succss");
            $scope.respData = d.data.hotels;
    }, function (error) {
        console.log('Oops! Something went wrong while saving the data.');
        alert("Oops! Something went wrong while saving the data.");
    });

    };
});

他们是否可以调用api并将数据绑定到视图而不将参数传递给角度控制器?。

1 个答案:

答案 0 :(得分:2)

您的变量数据应该可以作为全局变量访问,而无需注入$ window。

$scope.datax = data;

如果感觉不舒服,您也应该能够直接访问窗口变量:

$scope.datax = window.data;

如果您更新了该值,则直接在模板中绑定可能会导致问题,因为在控制器范围之外的全局变量上没有设置监视。