Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Javascript Angular Js:您可以在ng选项中使用“track by”来设置select的默认值吗_Javascript_Angularjs - Fatal编程技术网

Javascript Angular Js:您可以在ng选项中使用“track by”来设置select的默认值吗

Javascript Angular Js:您可以在ng选项中使用“track by”来设置select的默认值吗,javascript,angularjs,Javascript,Angularjs,为选择列表中的选项设置值的最佳方法似乎是使用“track by”,使用a.id作为a.name。在ng options指令中似乎过时了。但是,当我使用“跟踪方式”时,我无法再使用ng模型设置默认值 例如,这是一个例子: 目前,plunkr正确设置默认值。但是,如果您将其更改为使用“trackby”,就像上面的代码一样,它将不起作用 “跟踪方式”不是这样工作的。它用于比较两个对象上的属性,而不是检查对象是否相等。ie obj1.trackBy==obj2.trackBy,而不是obj1==obj

为选择列表中的选项设置值的最佳方法似乎是使用“track by”,使用a.id作为a.name。在ng options指令中似乎过时了。但是,当我使用“跟踪方式”时,我无法再使用ng模型设置默认值

例如,这是一个例子:

目前,plunkr正确设置默认值。但是,如果您将其更改为使用“trackby”,就像上面的代码一样,它将不起作用

“跟踪方式”不是这样工作的。它用于比较两个对象上的属性,而不是检查对象是否相等。ie obj1.trackBy==obj2.trackBy,而不是obj1==obj2

例如,将默认模型更改为:

$scope.class = {
    team: {
       leader: { _id: 2, name: 'Dave', status: 0 }
    }  
};

如果没有track by,它将无法工作,因为它与students数组中的对象不同。但是使用track by angular时,将比较_id属性以确定相等性。

我使用的“track by”与此答案中使用的相同:它设置选项字段上的值。我觉得你使用trackBy是为了一个不同的用途,但我会再读一遍,因为我可能会感到困惑。我不知道你在说什么。如果您的模型只是id属性,那么a.id作为a.name并不过时,应该与所选答案的顶部注释一起使用:您的示例没有填充选项的value属性。它定义了将存储在元素模型中的内容。请参见obj.value作为obj.text和obj.text之间的差异。因为我想设置值属性,所以我想使用track by。不可能更改值属性,它们总是0、1、2等。为什么需要设置值?我已更正。我发布的内容。不过如果你也想要id的话,那就不太好了。可能的解决办法
$scope.class = {
    team: {
       leader: { _id: 2, name: 'Dave', status: 0 }
    }  
};