从服务器端设置的值未显示在具有ng-modal属性

时间:2015-09-24 15:04:22

标签: asp.net angularjs vb.net

您是AngularJS的初学者。我在ASP.NET应用程序中尝试过AngularJS。我分配了一个带有 ng-modal 的文本框,并将其值实时绑定到div而没有任何问题。但问题是,如果我从服务器端为文本框设置了一些值,那么它将被清除为该文本框。

    txt_surveyname.Text = "123"

但是在渲染html时,它是空的。

这是文本框的标记

<asp:TextBox runat="server" ID="txt_surveyname" ng-model="surveyname" ClientIDMode="Static" CssClass="form-control" />

但是当我删除 ng-modal 时,文本框会显示服务器端的值。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是一个简单的AngularJS Ajax示例,我还没有在ASP.NET应用程序中绑定。我只想说明AngularJS如何使用服务器端信息。

AngularJS:

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

// AngularJS Controller
app.controller('mainCtrl', ['$scope', 'myService', function ($scope, myService) {

    // Initialize scope object
    $scope.txt_surveyname = {};

    // Call the service to retrieve server data
    // currently setup to call as soon as the controller is loaded
    myService.getData().then(
        // On Promise resolve
        function (response) {
            // Notice how I am assigning to `data`
            // that way I can add debug reponse information to the response array if necessary
            $scope.txt_surveyname = response.data;
        }, 
        // On promise reject
        function () {
            // Handle any errors
        });
}]);

// Services to handle AJAX requests
app.service('myService', ['$q', '$http', function ($q, $http) {
    // return an object
    return {
        getData: function () {
            // Start a promise object
            var q = $q.defer();
            // Connect to the server to retrieve data
            $http.get('path/to/file.php', 
                // On Success
                function (response) {
                    q.resolve(response);
                }, 
                // On Error
                function (response) {
                    q.reject(response);
                });
            return q.promise();
        }
    };
}]);

服务器端响应path/to/file.php

<?php

$sample = array (
    'data' => array (
        'Text' => '123'
    )
);

echo json_encode($sample);

还有其他方法(黑客,如果你愿意)允许你在页面加载时为AngularJS分配数据,但上面是首选。

ASP.NET也可能有更好的方法,但我还没有使用过ASP.NET和AngularJS,除了在这里和那里玩一点点。

可能有用的链接:

https://stackoverflow.com/a/20620956/1134705
AngularJS in ASP.NET
How to use AngularJS in ASP.NET MVC and Entity Framework