ng-if 在视图中更改值

ng-if change value in view

我是 angularJS 的新人,这是我的问题: 我想知道这样做的语法是什么: 如果 user.fields[5].value=undefined 我想将值设置为 '0' 我用 ng-if 尝试过,但它不起作用,我不知道语法,我不知道是否 ng-if 适合这样做。也许 ng-init 更好,我不知道你能帮我吗?

这是我的代码:

ng-if="user.fields[5].value==undefined[user.fields[5].value='0']">{{user.fields[5].value}} 

我认为 ng-if 不是个好方法!

如您所见,hereng-if 创建或删除 DOM 个元素,例如 <div><p> ...

我认为最简单的方法是在您的控制器中进行。

你可以这样做:

即使我不建议这样做,这也应该有效:

<div ng-if="user.fields[5].value==undefined">
   <div ng-init="user.fields[5].value='0'">{{user.fields[5].value}}</div>
</div>

正确的方法是在控制器中使用 $watch :

$scope.$watch(function(){return user.fields[5];}, function(newValue){
   if(newValue===undefined){
       user.fields[5].value='0';
   }
});

但是你是如何得到那个字段中的 undefined 的?你不应该需要那个

编辑:关于您对 API 的评论:

那么你不应该在你的控制器和视图中这样做。您应该在服务层中使用如下所示的内容来执行此操作:

//service layer return the promise
return $http.get('API...').then(function(response){
    var data = response.data;
    [.. format your data ...]
    return data;// don't forget to return it so your controller will have those formatted data : 
});
//controller layer
myService.getData().then(function(data){
    // CLEAN data!!!!
});

理想情况下 AngularJS 内置 指令 ng-ifng-switchng-init 等用于 DOM,除 ng-class.

以外的条件和作业

如果您需要为任何 model 赋值,您 应该 仅在 .js 文件中进行。并且一旦赋值,就可以在HTML DOM.

中使用了

希望你清楚。