2016-04-15 4 views
0

ich viele Antworten auf diese sahen aber alle verwenden $scope

Ich habe mehrere ng-models mit ein paar Tasten der erhöhen oder verringern Wert, möchte ich nur eine Funktion für alle verwenden.

So:

app = angular.module("myApp",[]); 
 

 
app.controller("myCtrl", mainFunction); 
 

 
function mainFunction(){ 
 
    scope = this; 
 
    this.value1 = 3; 
 
    this.value2 = 5; 
 
    this.addOne = function (control) { 
 
     if (scope.control <12){ 
 
      scope.control += 1; 
 
     } 
 
    } 
 

 
    this.dimOne = function (control) { 
 
     if (scope.control > 1) { 
 
      scope.control -= 1; 
 
     } 
 
    } 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl as vm"> 
 

 
    <span>{{vm.value1}}</span> 
 
    <button ng-click="vm.dimOne('value1')">-</button> 
 
    <button ng-click="vm.addOne('value1')">+</button> 
 
    <br /> 
 
    <span>{{vm.value2}}</span> 
 
    <button ng-click="vm.dimOne('value2')">-</button> 
 
    <button ng-click="vm.addOne('value2')">+</button> 
 
    
 
</div>

+0

Vielleicht könnten Sie die innere HTML der Spannweite ändern? –

Antwort

0

Da Sie scheinen die Zeichenfolge von dem, was Sie wollen, werden vorbei, nur Ihre Funktionen aktualisieren:

this.addOne = function (control) { 
    if (scope[control] < 12) { 
     scope[control] += 1; 
    } 
} 

this.dimOne = function (control) { 
    if (scope[control] > 1) { 
     scope[control] -= 1; 
    } 
} 

Auch ... ist Ihre HTML soll das sein?

<span>{{vm.value1}}</span> 
<button ng-click="vm.dimOne('value1')">-</button> 
<button ng-click="vm.addOne('value1')">+</button> 
<br /> 
<span>{{vm.value2}}</span> 
<button ng-click="vm.dimOne('value2')">-</button> 
<button ng-click="vm.addOne('value2')">+</button> 
+0

Ja, es gab einen Fehler in HTML, ich hatte es behoben. Vielen Dank! – distante

1

passieren nur die tatsächliche model: -

<button ng-click="vm.dimOne(vm.value2)">-</button> 

*.js

this.dimOne = function (control) { 
    if (control > 1) { 
     control -= 1; 
     this.value2 = control ; 
    } 
} 
+0

bearbeitet, das war mein Fehler – manish

+0

Dies wird nicht funktionieren, wie wird value1 aktualisiert werden? –

+0

du hast da eine separate Methode dafür mit benötigter Funktionalität – manish

Verwandte Themen