Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON内部创建链接并通过AngularJS将其注入dom_Javascript_Angularjs - Fatal编程技术网

Javascript 在JSON内部创建链接并通过AngularJS将其注入dom

Javascript 在JSON内部创建链接并通过AngularJS将其注入dom,javascript,angularjs,Javascript,Angularjs,我对Angular有点陌生,我正在尝试修改一些基于正则表达式输出绑定的数据。问题是我试图在本文中创建带有“ng click”的元素,这些元素调用函数搜索并将正则表达式值传递给它。例如,我想获取从ajax调用接收到的数据,如下所示: "{\ name: 'foo@1.0',\ children: [\"bar@1.0\", \"baz@1.0\"],\ ...\ }" <pre> { name: '<a ng-click="search('foo

我对Angular有点陌生,我正在尝试修改一些基于正则表达式输出绑定的数据。问题是我试图在本文中创建带有“ng click”的元素,这些元素调用函数搜索并将正则表达式值传递给它。例如,我想获取从ajax调用接收到的数据,如下所示:

"{\
    name: 'foo@1.0',\
    children: [\"bar@1.0\", \"baz@1.0\"],\
    ...\
}"
<pre>
{
    name: '<a ng-click="search('foo@1.0')>"foo@1.0'</a>,
    children: [
        "<a ng-click="search('bar@1.0')>bar@1.0</a>", 
        "<a ng-click="search('baz@1.0')>baz@1.0</a>",
    ]
    ...
}
</pre>
<your-directive></your-directive>
并以这种格式将其绑定到html

还有最后一个问题。由于我收到的JSON需要一些附加功能,因此无法将其解析为有效的JSON

我目前解决这个问题的方法是使用正则表达式来查找所有类似的名称name@1.0并以jQuery风格围绕它们,但我很难相信这是正确的方法


有谁有更好的方法来解决这个问题吗

假设您能够解析字符串并根据需要提取数据,将其添加到范围中,然后在模板中使用ng repeat

yourDirective.js

<pre>
{
    name: '<a ng-click="search(name)">{{name}}</a>',
    children: [
    <a ng-repeat="child in children" ng-click="search(child)">{{child}}</a>
    ]
}
</pre>
yourDirective.html

用法:


你的JSON是无效的,所以你的选项是为你特定风格的JSON或regexing编写一个解析器,这就是你正在做的也许这个问题措词不当?我想知道是否有人知道我可以利用angular的模板功能而不是编写javascript来格式化和修改这个字符串的方法。哦,没关系,我以为你的问题是从一个无效的JSON字符串中提取数据,让我试着回答一下,你想看到的最终html格式是什么?你在问题中提到的那个不是真正的htmlRight。我只是把它包装起来,我更新了问题以反映这一点。
<your-directive></your-directive>