Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 AngularJS-获取插入到dom中的数据_Javascript_Xml_Angularjs_Client Server_Client Side - Fatal编程技术网

Javascript AngularJS-获取插入到dom中的数据

Javascript AngularJS-获取插入到dom中的数据,javascript,xml,angularjs,client-server,client-side,Javascript,Xml,Angularjs,Client Server,Client Side,我正在寻找一种在加载应用程序后从DOM获取初始数据的方法。服务器已将数据插入视图中。模块的值方法是一种好方法吗 此外,我想知道在使用路由时如何从视图中获取数据,我可以使用脚本标记在特定范围内注入数据吗 我看到了一些问题,但没有多大帮助。1)第一个解决方案的灵感来自: 但当我开始使用路由时,这种方式不知何故对我不起作用,可能是因为值仅在应用程序初始化时运行 2) 第二个解决方案来了:指令。现在,当服务器发送路由的模板时,它会将一些脚本标记放入其中,标记中包含“text/template”类型和特殊

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

此外,我想知道在使用
路由
时如何从视图中获取数据,我可以使用
脚本
标记在特定范围内注入数据吗

我看到了一些问题,但没有多大帮助。

1)第一个解决方案的灵感来自:

但当我开始使用
路由时,这种方式不知何故对我不起作用,可能是因为
值仅在应用程序初始化时运行

2) 第二个解决方案来了:指令。现在,当服务器发送路由的模板时,它会将一些
脚本
标记放入其中,标记中包含
“text/template”
类型和特殊指令名属性以及json数据,如下所示:

myApp.controller('MainCtrl', function($scope, PrimaryData) {
    $scope.data = angular.copy(PrimaryData); 
    console.log( $scope.data[0].name === "John" );
});
<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>

太棒了!:)

可能重复我刚才使用的指令解决方案,非常感谢。但我必须删除脚本标记中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" );
        }
    }
  }
});