小编Ome*_*len的帖子

在Angular中,如何将JSON对象/数组传递给指令?

目前,我的应用程序有一个控制器,它接收一个JSON文件,然后使用"ng-repeat"迭代它们.这一切都很好,但我也有一个需要迭代相同JSON文件的指令.这是一个问题,因为我不能在一个页面上两次请求相同的JSON文件(我也不想,因为它效率低).如果我更改其中一个JSON文件的文件名,指令和控制器请求并迭代JSON数据就好了.

我想知道的是:将控制器的JSON请求形成的数组传递给指令的最佳方法是什么?当我已经通过我的控制器访问它时,如何将数组传递给我的指令并进行迭代?

调节器

appControllers.controller('dummyCtrl', function ($scope, $http) {
   $http.get('locations/locations.json').success(function(data) {
      $scope.locations = data;
   });
});
Run Code Online (Sandbox Code Playgroud)

HTML

<ul class="list">
   <li ng-repeat="location in locations">
      <a href="#">{{location.id}}. {{location.name}}</a>
   </li>
</ul>
<map></map> //executes a js library
Run Code Online (Sandbox Code Playgroud)

指令(当我使用除locations.json之外的文件名时工作,因为我已经请求过一次

.directive('map', function($http) {
   return {
     restrict: 'E',
     replace: true,
     template: '<div></div>',
     link: function(scope, element, attrs) {

$http.get('locations/locations.json').success(function(data) {
   angular.forEach(data.locations, function(location, key){
     //do something
   });
});
Run Code Online (Sandbox Code Playgroud)

javascript json angularjs angularjs-directive angularjs-ng-repeat

52
推荐指数
3
解决办法
10万
查看次数

JQuery最佳实践

好的,这里有三个问题.他们都很漂亮,但我只是想让你们的家伙对他们有所了解.

1)在编写jquery脚本时,我应该包含类型吗?

IE:

<script type="text/javascript" charset="utf-8">
  //Jquery here
</script>
Run Code Online (Sandbox Code Playgroud)

或者只是一个可以接受的开始和结束脚本标签?

2)我知道在关闭正文标记之前包含所有JQuery是一种最佳实践,但这是否也意味着我在正文之前包含了实际的jquery.js文件?

3)如果我的页面依赖于jquery来查看它应该是什么(不仅仅是动作事件/ ajax/etc).例如,我正在使用一个名为datatables的jquery插件,它通过我指定的数据库进行排序并自动分页/排序/ etc.我发现因为我在DOM加载后包含了所有脚本,所以在我的datatables.js文件和相应的构造函数加载之前,我看到了数据表的原始格式.在我的身体加载之前包含它是否可以接受,这样就不会发生这种情况?

javascript jquery

3
推荐指数
1
解决办法
434
查看次数