對於AngularJs我很新。我得到了一個有狀態的對象列表。 基於這種狀態,這些對象中的一些是可編輯的(比如state=1 or state=4
)或不是(state <> 1,4)
。 根據狀態,列表中的鏈接應指向可編輯或可查看的版本。Angularjs根據狀態選擇用於編輯或顯示的模板
我想了解一個正確的方法來處理這個問題。 選項:
- 不同的指令?
- 不同的模板?如何選擇?
ng-if
在相同的模板?
在情況1和2中如何更好地確定可編輯性?在控制器中(以整個對象列表中的循環的價格)還是通過html中的函數?
爲了更好地我的意思是:
性能
應用 '風格'
代碼示例項目detail.component.js。通過url#!/ projects /調用的組件:編號
angular.module('projectDetail').
component('projectDetail', {
templateUrl: 'app/project-detail/project-detail.template.html',
controller:['$http','$routeParams', function ProjectDetailController($http,$routeParams) {
var self=this;
$http.get('rest/projects/' + $routeParams.id).then(function(response) {
self.project = response.data;
});
}
});
代碼示例edit-project-detail.component.js。組件由URL#回顧/項目/編輯/:ID
angular.module('editProjectDetail').
component('editProjectDetail', {
templateUrl: **'app/edit-project-detail/edit-project-detail.template.html',**
controller:['$http','$routeParams', function EditProjectDetailController($http,$routeParams) {
var self=this;
$http.get('rest/projects/' + $routeParams.id).then(function(response) {
self.project = response.data;
});
}
});
HTML呼叫
<tr ng-repeat="project in $ctrl.projects track by project.id">
<td>{{project.id}}</td>
<td><a href="#!/projects/{{project.id}}">{{project.name}}</td>
<td>{{project.projectType}}</td>
<td>{{project.status.label}}</td>
...
</tr>
的2個組件除了模板相同。我想了解是否最好在列表控制器中循環整個數組(可能很長),或者放入類似ng的東西 - 如果在html中或嘗試從組件聲明中選擇正確的模板。
如何鏈接版本之間的差異? – mikepa88
該鏈接可能類似於project/edit /:1用於編輯或項目/:id用於查看。 問題在於組件是絕對平等的。 兩者都從相同的服務獲取數據,只是在一個模板中我們有表單和輸入,而另一個則不同。這就是爲什麼我想知道根據對象狀態選擇不同模板的可能性,而不是不同的鏈接。我會把示例代碼 – Massimo