您是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 时,文本框会显示服务器端的值。我该如何解决这个问题?
答案 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