加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何将json作为字符串参数传递给指令

发布时间:2020-12-17 07:51:41 所属栏目:安全 来源:网络整理
导读:当我尝试评估下面的json表单时,它给了我一个错误 – eval("{form: 'form',nameToMatch: 'password1'}") 为什么上述表格无效? 但是以下工作正常 – eval("{form: 'form'}") 我试图将上面的json作为字符串传递,作为指令的param输入. 下面是html – input type
当我尝试评估下面的json表单时,它给了我一个错误 –
eval("{form: 'form',nameToMatch: 'password1'}")

为什么上述表格无效?

但是以下工作正常 –

eval("{form: 'form'}")

我试图将上面的json作为字符串传递,作为指令的param输入.

下面是html –

<input type="password" name="password2" ng-model="user.confirmPassword" placeholder="Confirm Password" match="{form: 'form',nameToMatch: 'password1'}" required="required"/>

谢谢,
穆尔塔扎

在你的json周围放置parens:
eval("({form: 'form',nameToMatch: 'password1'})")

虽然看起来不是一个有角度的问题.不确定你要做什么:

无论如何,要将json传递给指令,有很多方法可以做到这一点.我不确定你为什么要这样做,而不仅仅是传递一个对象.

通过json可以做很多方法……

>从您的属性对象:

app.directive('foo',function () {
   return function(scope,element,attrs) {
       var obj = eval('(' + attrs.foo + ')');
   };
});

哪里

<div foo="{'test':'wee'}"></div>

>来自孤立的范围:

app.directive('foo',function () {
   return {
     restrict: 'E',scope: {
      'jsonIn' : '@'
     },link: function(scope,attrs) {
       var obj = eval('(' + scope.jsonIn + ')');
     };
   };
});

哪里

<foo json-in="{'test':'wee'}"></foo>

但是,如果可以的话,最好不要不惜一切代价避免使用本地eval.在几乎所有情况下你都可以.如果你有一些数据只是将它放在一个范围参数的对象中,并通过隔离范围上的双向属性或名称传递它,并对其进行角度$eval.

编辑:传递一个对象…

您可以在隔离范围上使用双向绑定:

app.directive('foo',function (){
  return {
     restrict: 'E',scope: {
        'data' : '='
     },elem,attrs) {
        console.log(scope.data);
     }
  };
});

哪里

<foo data="{ test: 'wee' }"></foo>

这样做真的很酷,如果你使用的是scoped属性,它会双向更新:

app.controller('MainCtrl',function($scope) {
    $scope.bar = { id: 123,name: 'Bob' };
});

哪里

<foo data="bar"></foo>

我希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读