我對AngularJS頗爲陌生,並且已經閱讀了一些關於directives
如何工作的文章。儘管如此,我仍然不太確定如何解決這個問題。AngularJS - 在計數器++上添加DOM元素
這裏的設置:
我有一個視圖按鈕,如下所示:
<div class="parent">
<button class="firstButton" type="button" ng-click="fetchData(param1, param2)"></button>
<button class="secondButton" type="button" ng-click="fetchData(param1, param2)"></button>
<button class="thirdButton" type="button" ng-click="fetchData(param1, param2)"></button>
<button class="fourthButton" type="button" ng-click="fetchData(param1, param2)"></button>
</div>
<div class="dataPanel">
<!-- This is where DIVs will be placed -->
</div>
然後在我的控制,我有:
// Init value of counter here
var counter = 0;
$scope.fetchData = function (param1, param2) {
// Do something with parameters here
counter++;
}
理想的情況下是當用戶點擊firstButton
,fetchData()
啓動,從工廠獲取數據,然後遞增值counter
。將從counter
價值變化創建一個div。在DOM中創建的div的數量取決於counter
的值。每個創建的div也填充了從各個fetchData()
獲得的數據。隨着用戶點擊更多按鈕,這種情況還會繼續,但在我目前的項目中,我限制了允許的dataSet
重複項的數量。那麼HTML的
最終結果將是:
<div class="dataPanel">
<div class="dataSet"> <!-- from firstButton -->
<p>{{dataFromFirstButton}}</p>
</div>
<div class="dataSet"> <!-- from secondButton -->
<p>{{dataFromSecondButton}}</p>
</div>
<div class="dataSet"> <!-- from thirdButton-->
<p>{{dataFromThirdButton}}</p>
</div>
</div>
什麼是這樣做的角方式?我讀過的指令在涉及到DOM操作時幾乎可以做任何事情,但在實際構造指令時不知道從哪裏開始。
如果第一個按鈕被點擊兩次,應該創建兩個div麼?或者應該只有一個按鈕創建一個div? – null
現在將其簡化爲一個按鈕和一個輸出列表。使用'ng-repeat'和它爲數據公開的各種過濾器。一旦你開始將模塊化改爲指令。你似乎一次嘗試太多,需要熟悉角度如何工作 – charlietfl