gpt4 book ai didi

javascript - AngularJS - 获取插入dom的数据

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:19 25 4
gpt4 key购买 nike

我正在寻找一种在加载应用程序后从 DOM 获取初始数据的方法。服务器已将数据插入到 View 中。 Modulevalue方法是好方法吗?

我还想知道在使用 routes 时如何从 View 中获取数据,我可以使用 script 标签在特定范围内注入(inject)数据吗?

我看到了thisthis问题,但没有太大帮助。

最佳答案

1) 受 this question 启发的第一个解决方案它是Module's value method :

<script>
var users_json = '[{"name":"Piotr"},{"name":"Natasha"}]'; // created by xsl
myApp.value("PrimaryData" , users_json );
</script>
<ul>
<li ng-repeat="user in users">{{user.name}}</li>
</ul>

然后我们可以在我们希望的时间和地点使用这个PrimaryData,就像这样:

myApp.controller('MainCtrl', function($scope, PrimaryData) {
$scope.data = angular.copy(PrimaryData);
console.log( $scope.data[0].name === "John" );
});

但是当我开始使用 routes 时,这种方式对我不起作用,可能是因为 value 仅在应用程序初始化时运行。

2) 那么第二个解决方案来了:指令。现在,当服务器发送路由模板时,它会将一些 script 标签放入 "text/template" 类型和特殊指令名称属性以及该标签中的 json 数据,例如这个:

<script  type = "text/template" rawdata >     <!-- "rawdata" is our directive
'[{"name":"Nelson"},{"name":"Luis"}]' // created by xsl
</script>
<ul>
<li ng-repeat="user in users">{{user.name}}</li> // view is beside
</ul>

这个指令捕获它并将数据传递给当前路由的范围:

studio.directive('rawdata', function() {
return {
link: function(scope, element, attr, ctrl) {
if(scope.passRawData){
var data = (element[0].innerHTML);
scope.passRawData(data); // Or simply scope.users = JSON.parse(data)
} else {
console.log( "Scope has no passRawData method" );
}
}
}
});

太棒了! :)

关于javascript - AngularJS - 获取插入dom的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18097923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com