Javascript ng init预先选择的选项在NgoOptions | AngularJS中不起作用

Javascript ng init预先选择的选项在NgoOptions | AngularJS中不起作用,javascript,angularjs,ng-options,Javascript,Angularjs,Ng Options,我的角度控制器中有对象乘积={id:759,name:someName,category_id:139,cartridge_type:2…} 为什么NgoOptions中的预选选项不起作用?选择“呈现空”选项,就像product.cartridge\u类型为空一样 HTML 只需简单使用cartridgeTypeScope[0]。在ng init中使用id即可 ng-init="product.cartridge_type=product.cartridge_type||cartridgeTyp

我的角度控制器中有对象乘积={id:759,name:someName,category_id:139,cartridge_type:2…}

为什么NgoOptions中的预选选项不起作用?选择“呈现空”选项,就像product.cartridge\u类型为空一样

HTML

只需简单使用cartridgeTypeScope[0]。在ng init中使用id即可

ng-init="product.cartridge_type=product.cartridge_type||cartridgeTypeScope[0].id"
问题是,您正在使用cartridge_type.id作为cartridge_type.name,它在select中需要id,但在ng init中,您为它提供了完整的对象cartridgeTypeScope[0]。 因此,它不是选择您的选项值

或者你也可以这样做 您可以使用相同的ng init,但从ng选项中删除cartridge_type.id

希望它能帮助:

更新

对于控制器默认选项,您需要执行以下操作

  $scope.product={
    "cartridge_type":2
  }
UPADTE 2:- $http:-


尝试在任何其他html中使用ng inittag@ShubhamNigam你的意思是在控制器?中设置它。这不适合用于ng init。ng init是一个优先级高于0的指令,以确保它在某些其他操作之后执行,这仅适用于ng repeat。它可能与其他属性一起工作,也可能完全失败,因为它基于优先级延迟运行。在控制器初始化时选择默认选项。填充下拉列表时,它将被预先设置为ng模型变量已设置为的任何值。首先,感谢您提供如此详细的响应。这很奇怪,但你的两个建议对我都不起作用。不知道为什么…你检查过那辆车了吗?你能为同样的东西创作小提琴或普朗克吗?是的,它不起作用。当我简单地将$scope.product.cartridge_type=2添加到plunker中的控制器时,select并没有预先选择正确的选项。@Alliswell我更新我的答案,请检查:我已经检查过了。正如我所看到的,您已经删除了ng init指令,它工作得很好。我在代码中做了相同的更改,但仍然无法使其工作。。
ng-init="product.cartridge_type=product.cartridge_type||cartridgeTypeScope[0].id"
ng-init="product.cartridge_type=product.cartridge_type||cartridgeTypeScope[0]"

 ng-options="cartridge_type.name for cartridge_type in cartridgeTypeScope"
  $scope.product={
    "cartridge_type":2
  }