Angularjs ng如果不使用ng模型

Angularjs ng如果不使用ng模型,angularjs,angularjs-ng-model,angular-ng-if,Angularjs,Angularjs Ng Model,Angular Ng If,我正在使用angularjs集成我的api 我在文本框中使用ng时遇到问题 下面是我的HTML代码片段: <input type="text" value="" data-ng-if="edit" ng-model="name"> <input type="text" value="" data-ng-if="!edit" ng-model="singleAppDetails.name"> 因此,如果edit为false,则应使用ng model=name进行绑定 如果

我正在使用angularjs集成我的api

我在文本框中使用ng时遇到问题

下面是我的HTML代码片段:

<input type="text" value="" data-ng-if="edit" ng-model="name">
<input type="text" value="" data-ng-if="!edit" ng-model="singleAppDetails.name">
因此,如果edit为false,则应使用ng model=name进行绑定 如果edit为true,则应使用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 = '';
    };
但它总是发送空数据。

ng if有自己的作用域。因此,由第一个输入填充的name属性位于ng if范围内,而不是控制器范围内

如果控制器将singleAppDetails初始化为非null对象,则第二个输入应该可以正常工作:

$scope.singleAppDetails = {};
经验法则:在您的ng模型中始终有一个点。始终填充作用域中的对象,而不是作用域本身。

ng如果有自己的作用域。因此,由第一个输入填充的name属性位于ng if范围内,而不是控制器范围内

如果控制器将singleAppDetails初始化为非null对象,则第二个输入应该可以正常工作:

$scope.singleAppDetails = {};
经验法则:在您的ng模型中始终有一个点。始终填充作用域中的对象,而不是作用域本身。

ng如果正在创建子作用域,因为输入元素看不到控制器中定义的作用域变量,则有两种方法可以解决此问题

使用对象引用 前任: $scope.user={name:} 在模板内部

您可以告诉angular在父范围而不是子范围中查找变量

ng if正在创建子范围,因为输入元素没有看到控制器中定义的范围变量。有两种方法可以解决此问题

使用对象引用 前任: $scope.user={name:} 在模板内部

您可以告诉angular在父范围而不是子范围中查找变量


如果在div中,并且在您的任何位置将checkI not see edit设置为true和false,请尝试在ng中换行code@Sajeetharan@Sajeetharan请看我的上述评论。我尝试了这个,但没有成功。你能创建一个plnker吗?如果在div中,请尝试在ng中换行,并检查我看不到编辑在你的任何地方设置为true和falsecode@Sajeetharan@Sajeetharan请看我的上述评论。我试过了,但没有成功。你能创建一个plnker吗?