對於這兩種方法的例子參見本fiddle(使用顏色的位置是在困難jsfiddle)
選項1:ng樣式和範圍函數
NG-風格將讓你這樣做,並保持它整潔和可測試的,你應該定義範圍的功能,如下面(三元運營商not currently supported爲角,although 1.1.5 has added ternary support穩定1.0.x的版本角表達式)。
ng-style='myStyleFunction($last)'
在控制器中,定義:
$scope.myStyleFunction = function($last) {
return {
'left': $last ? $scope.lastX + 'px' : '',
'top': $last ? $scope.lastY + 'px' : ''
};
}
選項2:自定義指令
或者,你能想到的,甚至更多的 「角」,並定義一個指令:
dirModule.directive('positionLast', function() {
return {
scope: true,
link: function (scope, $element, attrs) {
if (scope.$last) {
// if jQuery is present use this, else adjust as appropriate
$element.css("left", $scope.lastX + 'px');
$element.css("top", $scope.lastY + 'px');
}
}
}
});
然後:
<div ng-repeat="contact in jsonContacts" position-last> ...
編輯這是通過使用scope: true
和聲明ng-repeat
元素的指令。由於對元素上的所有指令只創建一個新範圍(假設至少有一個新範圍請求新範圍),則它可以訪問ng-repeat
scope values。對於相關文件見:
範圍 - 如果設置爲true的新範圍爲這個指令將被創建。如果同一元素上的多個指令請求新範圍,則只創建一個新範圍。
每當我問一些問題時,我知道Angular比我以前想要的更強大和更復雜:D非常感謝你,我也會試着去看看指令裏面的範圍如何從ng-重複:) –