我正在使用angularjs来整合我的api。
我在文本框中使用ng-if
时遇到问题。
所以下面是我的HTML代码片段:
<input type="text" value="" data-ng-if="edit" ng-model="name">
<input type="text" value="" data-ng-if="!edit" ng-model="singleAppDetails.name">
这里有编辑变量 在我的控制器中我已经宣布它是这样的:
$scope.edit = false;
因此,如果编辑为假,则应与ng-model="name"
绑定
如果编辑为真,它应该与ng-model="singleAppDetails.name"
绑定
但它并没有像预期的那样具有约束力。
此外,我正在使用$http.post
将数据发布到服务器,如下所示:
$scope.addApp = function(){
$scope.apps = [];
$scope.apps.push({'name':$scope.name, 'domain':$scope.domain, 'appId':$scope.appId, 'secret':$scope.secret});
// Writing it to the server
//
var dataObj = {
name : $scope.name,
domain : $scope.domain,
appId : $scope.appId,
secret : $scope.secret
};
var res = $http.post('http://192.168.1.30:8090/apps/', dataObj);
res.success(function(data, status, headers, config) {
$scope.message = data;
});
res.error(function(data, status, headers, config) {
alert( "failure message: " + JSON.stringify({data: data}));
});
// Making the fields empty
//
$scope.name='';
$scope.domain='';
$scope.appId = '';
$scope.secret = '';
};
但是这总是发送空数据。
答案 0 :(得分:1)
public ActionResult CatchCode(string code)
{
string resource = "https://graph.windows.net";
AuthenticationContext authContext = new AuthenticationContext(Startup.Authority);
ClientCredential credential = new ClientCredential(clientId, appKey);
var accessToken =
authContext.AcquireTokenByAuthorizationCodeAsync(code,
new Uri("http://localhost:44344/Home/CatchCode"), credential, resource).Result.AccessToken;
return View();
}
正在创建一个子范围,因为输入元素没有看到控制器中定义的范围变量,你有两种方法来解决这个问题
使用对象引用
例如:
ng-if
在模板内
$scope.user = { name : "" }
你可以告诉angular在父范围内寻找变量而不是子范围
<input type="text" ng-model='user.name' />