Angularjs ng-如果不使用ng-model

时间:2015-04-22 05:26:07

标签: angularjs angularjs-ng-model angular-ng-if

我正在使用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 = '';
    };

但是这总是发送空数据。

1 个答案:

答案 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(); } 正在创建一个子范围,因为输入元素没有看到控制器中定义的范围变量,你有两种方法来解决这个问题

  1. 使用对象引用 例如: ng-if 在模板内

    $scope.user = { name : "" }

  2. 你可以告诉angular在父范围内寻找变量而不是子范围

    <input type="text" ng-model='user.name' />