Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

Jak działa ten splice?

$
0
0

Witam. Mam pytanie odnośnie działania pewnej apki. Znalazłem ją w sieci i postanowiłem od deski do deski prześledzić jej działanie:

 

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
    $scope.products = ["Milk", "Bread", "Cheese"];
    $scope.addItem = function () {
        $scope.errortext = "";
        if (!$scope.addMe) {return;}
        if ($scope.products.indexOf($scope.addMe) == -1) {
            $scope.products.push($scope.addMe);
        } else {
            $scope.errortext = "The item is already in your shopping list.";
        }
    }
    $scope.removeItem = function (x) {
        $scope.errortext = "";
        $scope.products.splice(x, 1);
    }
});
</script>

<div ng-app="myShoppingList" ng-controller="myCtrl">
  <ul>
    <li ng-repeat="x in products">{{x}}<span ng-click="removeItem($index)">×</span></li>
  </ul>
  <input ng-model="addMe">
  <button ng-click="addItem()">Add</button>
  <p>{{errortext}}</p>
</div>

</body>
</html>

Pytanie mam odnośnie splice, a mianowicie tego fragmentu kodu: 
 

    $scope.removeItem = function (x) {
        $scope.errortext = "";
        $scope.products.splice(x, 1);
    }

Jak to działa, że funkcja przekazuje jakiś parametr i kiedy $scope przesyła model do widoku, to przy użyciu ng-click usówa się kliknięty element? Bez przekazania parametru ta funkcja nie wykona się poprawnie. Zrozumienie tego mnie nieco przerasta, więc będę bardzo wdzięczny, jeśli ktoś wytłumaczy mi to w "łopatologiczny" sposób :)


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>