2016-07-07 3 views
1

HTMLнг-изменение на выбор метания ошибка

  <tr dir-paginate="sale in payments | itemsPerPage: 6"> 
       <td>{{sale.date}}</td> 
       <td>{{sale.transaction_id}}</td> 
       <td>{{sale.artist_details.seller_num}}</td> 
       <td>{{sale.artist_details.name}}</td> 
       <td>{{sale.exc_vat}} Kr</td> 
       <td>{{sale.total_price}}</td> 
       <td><select ng-change="released()" ng-options="released.item for released in releasedSeller.options" ng-model="released" ></select><span>{{released.item}}</span></td> 
      </tr> 

CONTROLLER

$scope.released=function() { 
     console.log('pending'); 
    } 
    $scope.releasedSeller = { 
     options : [{ 
       item: 'Pending' 
       }, { 
       item: 'Released' 
      }] 
    } 

Я использую нг-изменения, чтобы вызвать функцию в переключателе. но я могу получить данные опций, это обертывание контроллера, я получаю данные платежей здесь с контроллера. Я использую контроллер, упоминая в app.js (ui-router), но когда я выбираю какой-то вариант, это бросая ошибку, как показано ниже.

angular.js:13236 TypeError: v2.released is not a function 
at fn (eval at compile (angular.js:14086), <anonymous>:4:215) 
+4

Не могли бы вы изменить свой вопрос, добавив еще код, пожалуйста? Может быть, вы не установили ng-controller для этого элемента, но без кода больше, я не уверен. – pazitos10

+1

Возможно, вы перезаписали $ scope.released для какого-то другого типа. Пожалуйста, поделитесь своим html и контроллером. –

+0

изменили ли вы псевдоним $ scope как v2 в вашем контроллере, поскольку v2.released показывает error.please, добавьте код. – Sravan

ответ

1

As вы привязываете выбранное значение в «выпущенной» переменной, которая создаст новый varialbe в области видимости и перезапишет старую «выпущенную» (функцию), которую вы написали в контроллере.

Неправильный путь:

нг-изменение = "выпущен()"

нг-модель = "выпустила"

Правильный способ:

нг-изменение = "освобожден()"

ng-model = "selectedReleased"

<select ng-change="released()" ng-options="released.item for released in releasedSeller.options" ng-model="selectedReleased" ></select> 

Я думаю, это и является причиной ошибки.

+0

Да, это то, что вызывает ошибку, спасибо. теперь это сработало – codelearner

2
  • Убедитесь, что контроллер завершает HTML-код
  • Проверьте, если ваш код выглядит следующим образом.
  • Убедитесь, что приложение/контроллеры включены в index.html

var app = angular.module('app', []); 
 
app.controller('DemoCtrl', function($scope) { 
 
    $scope.items = [{ 
 
    'name': 'a' 
 
    }, { 
 
    'name': 'b' 
 
    }, { 
 
    'name': 'c' 
 
    }, { 
 
    'name': 'd' 
 
    }]; 
 
    $scope.showSelected = function() { 
 
    $scope.selectedItem = $scope.itemModel; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-app="app"> 
 
    <div ng-controller="DemoCtrl"> 
 
    <select ng-options="item.name for item in items" ng-change="showSelected(item)" ng-model="itemModel"></select> 
 
    <h5> Selected item: {{selectedItem}}</h5> 
 
    </div> 
 
</body>

+0

Да, это похоже на это только, контроллер завернул html-код, потому что все другие вещи работают. да, контроллер включен – codelearner

0

Я думаю, что ваш используют нг-контроллер в качестве синтаксиса, так как эта ошибка пришествия v2.released является не является функцией

Изменение v2.released только выпущен в вашем HTML файле

+0

Я не использую v2.выпущенный здесь, пожалуйста, проверьте приведенный выше код. Я использую только что выпущенный код – codelearner

+0

выглядит хорошо и чисто, интересно, что в вашем коде должен быть v2 –

+0

Я уверен, в моем коде нет v2. Я только что разместил свой код прямо здесь – codelearner

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