2015-09-15 5 views
0

Я не могу использовать selectedItem1 в контроллере для некоторых вычислений в следующем коде:связывания выбранного элемента angularjs

<div class="col-md-3"> 
      <label>Vendere:</label> 
      <select ng-model="selectedItem1" ng-options="(rosa.nome+' '+rosa.costo) for rosa in rose"></select> 

    </div> 

со следующим контроллером:

var app = angular.module('App', []); 

app.controller('Ctrl', function($scope, $http){ 


$scope.budget0=60; 
    $scope.budget1=$scope.budget0 - $scope.selectedItem1.someprop; 
} 

Я могу понять, почему? Где я ошибаюсь?

ответ

0

Я думаю, вы должны дать начальное значение selectedItem1 Выезда Следующего примера поможет вам: -

var app = angular.module('App', []); 
 

 
app.controller('Ctrl', function($scope, $http) { 
 
    $scope.rose = [{ 
 
    'nome': "abc", 
 
    'costo':110 
 
    }, { 
 
    nome: "xyz", 
 
    costo: 10 
 
    }]; 
 

 
    $scope.selectedItem1 = $scope.rose[0];// default selected item 
 
    
 
    $scope.budget0 = 60; 
 
    $scope.budget1 = $scope.budget0 - $scope.selectedItem1.costo; 
 
    
 
    $scope.change = function(){ 
 
    $scope.budget1 = $scope.budget0 - $scope.selectedItem1.costo; 
 
    console.log($scope.selectedItem1); 
 
    console.log($scope.budget0 +"-"+ $scope.selectedItem1.costo +"="+$scope.budget1); 
 
    } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="App" ng-controller="Ctrl"> 
 

 
    <select ng-model="selectedItem1" ng-change="change()" 
 
      ng-options="(rosa.nome+' '+rosa.costo) for rosa in rose"></select> 
 

 
    <br/> 
 
    {{"budget1 == "+budget1}} 
 
</div>

+0

очень полезно! спасибо ... я полагаю, что то же самое, если бы я появился из службы $ http.get? –

Смежные вопросы