Javascript 如何在AngularJS中绑定类型?

Javascript 如何在AngularJS中绑定类型?,javascript,angularjs,angularjs-directive,relational-database,Javascript,Angularjs,Angularjs Directive,Relational Database,我有一个简单的设置,我的Angular应用程序从API检索一组项目和人员(所有者),并在进行更改时发布对象 是否有一种简单直接的方法可以将person对象的下拉列表(使用person.id)双向绑定到item.ownerId字段 这是我的密码 我已经尝试建立自己的指令来实现这一点,但我似乎无法让它工作 $formatters和$parsers能成为解决方案吗 将字段包装在另一个指令中,并使用独立的方法是一个好方法吗 我尝试过使用$scope.$watch语句,但它最终会来回跳转更新,直到浏

我有一个简单的设置,我的Angular应用程序从API检索一组项目和人员(所有者),并在进行更改时发布对象

是否有一种简单直接的方法可以将
person
对象的下拉列表(使用
person.id
)双向绑定到
item.ownerId
字段

这是我的密码


我已经尝试建立自己的指令来实现这一点,但我似乎无法让它工作

  • $formatters
    $parsers
    能成为解决方案吗
  • 将字段包装在另一个指令中,并使用独立的方法是一个好方法吗
  • 我尝试过使用
    $scope.$watch
    语句,但它最终会来回跳转更新,直到浏览器内存耗尽
  • ng change
    是我目前使用的解决方案,但它确实太具体了。我需要双向绑定,我需要一个解决方案,可以在不同类型之间进行任意绑定(在这里我可以定义内射关系)

    • 你很接近了。我认为您遇到了问题,因为select元素中每个选项的值都是一个
      person
      对象,但是您的
      项目中没有
      person
      对象,您只有person的Id(即
      所有者Id

      将select元素选项的值绑定为
      person.id
      ,并将ng model设置为
      item.ownerId
      ,您应该很好

      <select ng-options="person.id as person.name for person in people" ng-model="item.ownerId"></select>
      
      
      

      这是一个例子。按按钮以编程方式将花盆重新分配给奥斯卡,并观看视图更新。

      Wow!我不知道你能做到。谢谢您知道如何在不同的设置中将
      模拟为
      功能吗?这适用于
      select
      标记,但我有其他严格绑定到对象的UI控件。我正在通读代码。你在想什么其他控件?我也在使用绑定到日期对象的指令。Items API以特定的字符串格式发送和接收日期,因此我需要通过来回转换的函数将日期对象绑定到字符串。这并不像访问对象的属性那么简单,但这是一个类似的场景。因此,您希望以不同于另存为的格式显示日期吗?你能做一个扑克牌吗?你可能应该把它作为一个单独的问题发布。你可能是对的。我将提出一个单独的问题。我可以通过修改原始指令代码中的
      $formatters
      $parsers
      将日期选择器绑定到特定的API格式的日期字符串,但我想找到一种方法,在通过函数转换绑定的指令中任意包装字段,而不是复制值。谢谢你的意见。