Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 他选择了奇怪的行为_Angularjs - Fatal编程技术网

Angularjs 他选择了奇怪的行为

Angularjs 他选择了奇怪的行为,angularjs,Angularjs,我有一个我很难理解的问题,也许有些人可以启发我“为什么” 我从后端检索一个用户,假设它看起来是这样的: $scope.user { id:1, 地位:{ id:1, 标签:测试 } } 我从后端检索所有状态的列表 $scope.statusList= [{ id:1, 标签:测试 }, { id:2, 标签:toro }] 我想显示一个select输入,其中包含状态列表和预选的用户状态 在我的模板上,我有以下内容: <select ng-model="userStatus" ng-opti

我有一个我很难理解的问题,也许有些人可以启发我“为什么”

  • 我从后端检索一个用户,假设它看起来是这样的:

    $scope.user { id:1, 地位:{ id:1, 标签:测试 } }

  • 我从后端检索所有状态的列表

    $scope.statusList= [{ id:1, 标签:测试 }, { id:2, 标签:toro }]

  • 我想显示一个select输入,其中包含状态列表和预选的用户状态

  • 在我的模板上,我有以下内容:

    <select ng-model="userStatus" ng-options="status.label for status in statusList"></select>
    
    案例2:不工作

    $scope.userStatus = $scope.user.status
    
    $scope.userStatus = {id:2,label:toro}
    
    案例3:不工作

    $scope.userStatus = $scope.user.status
    
    $scope.userStatus = {id:2,label:toro}
    
    案例4:不工作

    $scope.userStatus = $scope.user.status
    
    $scope.userStatus = {id:2,label:toro}
    
    在我的模板上,我直接放置了以下内容

    <select ng-model="user.status" ng-options="status.label for status in statusList"></select>
    
    
    
    为什么案例2和案例3不会预选选择框???
    更重要的是,案例4对于编辑用户而不复制新变量中的所有内容非常有用,那么为什么它不起作用呢?

    因为angular使用
    ==
    (但是
    ==
    会有相同的效果)而不是
    angular.equals()
    来比较每个选项与预选选项。因为您有两个不同的对象,所以即使对象具有相同的键和值,比较也会返回false


    网上的几条评论都在谈论你面临的问题。

    那么人们通常是怎么做的呢?它们带有一个中间值,比如案例1?我想是的。我还没见过很多棱角的用法。我自己刚开始使用它。很多时候,您可能只是在用户中拥有状态的ID。好的:'(.Quoiqu'il en soit,merci de votre aide)