【问题标题】:How to get custom attribute of select's option in angularjs?如何在angularjs中获取select选项的自定义属性?
【发布时间】:2013-08-24 11:08:40
【问题描述】:

这就是我的 html 的样子

<select name="currency_advance" ng-model="currency" ng-change="put_currency()">
    <?php foreach ($currency as $c) { ?>
      <option data-type="<?php echo $c->symbol; ?>" value="<?php echo $c->alphaCode; ?>" >
       <?php echo $c->alphaCode; ?> - <?php echo $c->currency; ?>
      </option>
     <?php } ?>
 </select>

现在我可以使用 put_currency 函数在 angularjs 的控制器中获取选项值,但现在我还需要获取自定义属性“数据类型”值。

我怎样才能做到这一点?有人请帮帮我吗?

更新

现在我正在从 javascript 生成选择字段。但现在的问题是我需要设置并获取另一个称为货币符号的值。以前我使用自定义标签数据类型来获取货币符号。如何以 angularJS 方式设置和获取自定义标签值?

<select name="currency_advance" ng-model="currency" ng-options="data.code as data.code + ' - ' + data.currency for data in data">

【问题讨论】:

  • 不要在 DOM 中存储业务逻辑数据。这是对关注点分离的公然无视,而不是 Angular 的方式。相反,使用 ng-repeat 指令并将实际的应用程序逻辑数据存储在 JavaScript 中。它更容易测试,更具可读性,它创建了更好的架构,而且通常更有意义。
  • @BenjaminGruenbaum -- 但此时我不想使用任何 XHR。另外我不知道以角度方式做到这一点
  • 你不需要XHR,你可以注入在同一个页面中编码的JSON对象。似乎你对构建一个好的 Angular 应用程序缺少更多基本的理解——我建议你先正确地学习技术(另外,在开始使用框架之前,请确保你自己理解 JavaScript 和 PHP)。我建议 egghead.io 有一个很好的规范的 Angular 教程
  • @BenjaminGruenbaum -- 请查看我更新的问题...
  • 如果您不想以“角度方式”做事,那么您不应该使用角度。您将在整个过程中进行一场艰苦的战斗,并且会让自己变得更加困难。

标签: php javascript angularjs


【解决方案1】:

在您的 ng-options 中执行以下操作:

ng-options="data as data.code + ' - ' + data.currency for data in data"

请注意,第一件事是数据而不是 data.code。这使您的整个“数据”对象在 $scope.currency 下可用。就像你之前做的那样,只有“代码”会在 $scope.currency 下。然后,您可以通过访问 $scope.currency.symbol 轻松访问该符号。

一般来说,您永远不需要使用自定义 data-* 属性将数据存储在 DOM 中。

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2019-05-20
    • 2014-04-11
    相关资源
    最近更新 更多