当我的应用程序加载一个函数来从服务器运行项目时,此函数获取服务器上所有项目的标题和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'对象。
我如何改进这一点,以便在单独的视图中隔离和编辑每个对象?