C# 如何从C代码隐藏文件修改角度ng模型?
问题是,如果我将指令ng模型添加到任何asp:TextBox中,那么我无法从代码隐藏文件中更改它们的值。ng模型绑定到vm.Company,我无法从代码隐藏中访问它。我会用javascript完成这一切,但我不知道如何在.NET之外获取EPiServerProfile.current 用户控件.ascx:C# 如何从C代码隐藏文件修改角度ng模型?,c#,javascript,asp.net,angularjs,episerver,C#,Javascript,Asp.net,Angularjs,Episerver,问题是,如果我将指令ng模型添加到任何asp:TextBox中,那么我无法从代码隐藏文件中更改它们的值。ng模型绑定到vm.Company,我无法从代码隐藏中访问它。我会用javascript完成这一切,但我不知道如何在.NET之外获取EPiServerProfile.current 用户控件.ascx: <div class="container" data-ng-app="app"> <div data-ng-controller="membershipsettin
<div class="container" data-ng-app="app">
<div data-ng-controller="membershipsettingscontrol as vm" class="row">
<div class="row">
<div class="span4">
<label for="txtCompanyName">Company Name:</label>
</div>
<div class="span8">
<asp:TextBox runat="server" ID="txtCompanyName" data-ng-model="vm.Company" data-ng-disabled="false" />
</div>
</div>
</div>
</div>
app.js:
(function () {
'use strict';
var controllerId = 'membershipsettingscontrol';
angular.module('app').controller(controllerId, ['$scope', '$location', 'datacontext.sbcountry', 'datacontext.sbstates', 'datacontext.sbcontact', admin]);
function admin($scope, $location, sbcountrydatacontext, sbstatesdatacontext, sbcontactdatacontext) {
var vm = this;
vm.title = 'Job Add';
vm.states = [];
vm.Address = {};
vm.getStates = getStates;
vm.submit = submit;
getCountries();
pageLoad();
function getCountries() {
return sbcountrydatacontext.getCountries().then(function (httpResults) {
vm.countries = httpResults.data.Countries;
});
}
function getStates(country) {
return sbstatesdatacontext.getStates(country).then(function (httpResults) {
vm.states = httpResults.data.States;
});
}
function submit(data) {
return sbcontactdatacontext.updateContact(data);
}
}
})();
看起来你没有按预期的方式使用角度。通过测试回发,您已经恢复到webforms风格,而不是以ajax为中心的MVC。那么您对此有何建议?获取登录到EPiServerProfile的用户的当前配置文件。当前正迫使我使用隐藏的代码。您应该公开一个端点,以便使用。为此,您应该查看WebAPI。然后,您可以在angular中使用$http服务将JSON对象与用户配置文件详细信息一起拉回来,并在angular控制器中更新您的模型。
(function () {
'use strict';
var controllerId = 'membershipsettingscontrol';
angular.module('app').controller(controllerId, ['$scope', '$location', 'datacontext.sbcountry', 'datacontext.sbstates', 'datacontext.sbcontact', admin]);
function admin($scope, $location, sbcountrydatacontext, sbstatesdatacontext, sbcontactdatacontext) {
var vm = this;
vm.title = 'Job Add';
vm.states = [];
vm.Address = {};
vm.getStates = getStates;
vm.submit = submit;
getCountries();
pageLoad();
function getCountries() {
return sbcountrydatacontext.getCountries().then(function (httpResults) {
vm.countries = httpResults.data.Countries;
});
}
function getStates(country) {
return sbstatesdatacontext.getStates(country).then(function (httpResults) {
vm.states = httpResults.data.States;
});
}
function submit(data) {
return sbcontactdatacontext.updateContact(data);
}
}
})();