S'il vous plaît aidez-moi à mettre en œuvre cette fonction. J'ai un tableau d'éléments dans mon $scope
. Désormais, lorsque je clique sur le bouton Ajouter un élément, je souhaite placer un nouvel élément dans le premier index ou dans l'index 0 de ce tableau. Merci d'avance. :)
Voici un jsFiddle pour commencer: http://jsfiddle.net/limeric29/7FH2e/
HTML:
<div ng-controller="Ctrl">
{{data}}<br/>
<input type="button" ng-click="addItem()" value="Add Item" />
</div>
JavaScript:
function Ctrl($scope) {
$scope.data = [
new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];
$scope.addItem = function () {
var c = $scope.data.length + 1;
var item = new String('Item ' + c)
$scope.data.Push(item);
};
}
Résolu mon problème en utilisant splice () au lieu de Push () et en assignant à quel index de tableau insérer.
HTML:
<div ng-controller="Ctrl">
<pre>{{data}}</pre><br/>
<input type="button" ng-click="addItem()" value="Add Item" />
</div>
Javascript:
function Ctrl($scope) {
$scope.data = [
new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];
$scope.addItem = function () {
var c = $scope.data.length + 1;
var item = new String('Item ' + c)
$scope.data.splice(0, 0, item);
};
}
Voici le fiddle mis à jour pour cela. http://jsfiddle.net/limeric29/xvHNe/
Vous pouvez utiliser la fonction unshift.
function Ctrl($scope) {
$scope.data = [
new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];
$scope.addItem = function () {
var item = new String('Item ' + c)
$scope.data.unshift(item);
};
}
$scope.data.unshift(item);
Une ligne, vous ne savez pas pourquoi les autres l'ont rendu si difficile
Je pense, pas nécessaire cette opération. Vous pouvez le résoudre comme ça;
<div ng-controller="Ctrl">
<!-- "$index" is short parameter, "true" statment is reverse parameter -->
{{data | reverse:$index:true}}<br/>
<input type="button" ng-click="addItem()" value="Add Item" />
</div>
Essaye ça:
function Ctrl($scope) {
$scope.data = [
new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];
$scope.addItem = function () {
var c = $scope.data.length + 1;
var item = new String('Item ' + c);
$scope.data.Push(item);
};
}