javascript - AngularJS:$parse 将数字字符串转换为数字

标签 javascript angularjs angularjs-directive

就我而言,我有一个从 attr 读取值的指令。

例如:

<span my-id="{{model.id}}"></span>
<span my-id="1234567890"></span>
<span my-id="0000000000"></span>

在此指令中,我$watch此属性:

$scope.$watch(
    function(){
        return $parse($attrs.myId)($scope);
    },
    function(val){
        ...
    }
)

问题是,在“0000000000”的情况下 - 传递给函数的 val 是数字 0。因此,有一个输入字符串 - '0000000000' 和在$parse中输出0。有什么办法可以绕过这个吗?我使用 $parse 函数的主要原因是 id 的来源不同。它可以是插值或纯字符串。

谢谢。

最佳答案

您不能在随机基础上使用插值或仅使用纯字符串。

  • 您可以为插值定义一个属性,为纯字符串定义另一个属性,例如:my-id 用于纯字符串,dyn-id 用于插值 -那些。

  • 或者只是传递将被插值的字符串:

    <span my-id="'0000000000'"></span>
    

关于javascript - AngularJS:$parse 将数字字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42901424/

相关文章:

javascript - 过滤器 :notarray Expected array but received: 0

php - 从一个网页重定向到另外两个网页

javascript - 正则表达式至少接受一个字母字符和数字字符

javascript - 使用 jQuery 将 Feb 17, 2012 转换为 17/02/2012

AngularJS 指令数字格式屏蔽

javascript - 为 ng-repeat 中的每个元素设置不同的样式

javascript - 立即导航到第一个 <p :menuitem> when <p:submenu> itself is clicked

javascript - 通过引用更新作用域对象的 Angular - 问题

AngularJS : directive binding value to parent scope from template model

javascript - 如何向指令添加 bool 属性?