将对象传递给隔离指令

时间:2015-08-24 09:54:21

标签: javascript angularjs

当我的应用程序加载一个函数来从服务器运行项目时,此函数获取服务器上所有项目的标题和ID, 然后把它们放在一个数组中。

在我的主html中,我有一个显示此数组的表,当我单击一个Item的标题时,我调用另一个函数(onView) 从服务器收集有关该项目的更多信息。这个新信息传递给 一个名为'$ scope.currentItem'的变量。

我还有一个名为'currentItem'的指令,用于为用户显示该项目。

myApp.directive('currentItem',function(){
  return{
    restrict:'E',
    scope:{
        data:'='
    },
    templateUrl: 'currentItem.html',
    controller:function($scope){
    }
  };
});

要知道用户是否点击了一个项目我有一个名为isView的布尔值,那么当收集更多信息的函数运行时 isView设置为“true”。

我的HTML看起来像这样:

<div ng-app="myApp">
<hr>
<div ng-controller="appCtrl">

    <div ng-hide="isView" class="col-md-12">
        <table id="mainTable" ng-table="tableParams" class="table">
            <tbody  ng-repeat="item in items">
                <tr>
                    <td id="Title"  data-title="'Title'">
                        {{item.id}} |<a ng-click="onView(item.id)">{{item.title}}</a>
                    </td>
                    <td data-title="'Description'">
                        {{item.description | date:'dd-MM-yyyy'}}
                    </td>

                    <td  data-title="'Created'">
                        {{item.created | date:'dd-MM-yyyy'}}
                    </td>
                </tr>
            </tbody>
        </table>
    </div>

    <div ng-show="isView" class="col-md-12">
        <current-item data="currentItem"></current-item>
    </div>

  </div>
</div>

这不是将对象传递给指令的正确方法,因为我总是使用相同的'currentItem'对象。

我如何改进这一点,以便在单独的视图中隔离和编辑每个对象?

0 个答案:

没有答案