2015-03-16 2 views
0

Я делаю этот проект, используя углы, где у меня есть коллекция объектов JSON, несущих свойства и значения. Все объекты имеют свойство сделано со значением, установленным в FALSEкак сделать функцию set значение свойства от FALSE к TRUE

myApp.controller('MyController', function($scope){ 
    $scope.customers = [ 
    {'name':'Ali','link':'https://facebook.com','done':false, 'call': 0}, 
    {'name':'khaled','link':'https://google.com','done':false, 'call': 0}, 
    {'name':'Salim','link':'https://technet.com','done':false, 'call': 0} 
    ] 

кнопку на странице HTML должен вызвать функцию upCall (клиент)

<div ng-repeat="customer in customers | orderBy: '-call'"> 
     <button ng-click="upCall(customer)" class="glyphicon glyphicon-earphone"></button> 

Кнопка предположительно для вызова upCall (клиент) функция ниже

$scope.upCall = function(customer) { 
    return customer.done === true; 
} 

Однако при отладке браузера, кнопка не устанавливает свойство объекта в ИСТИНА

Является ли синтаксис, который я должен беспокоиться о

+1

Вы хотите изменить свойство от false до true? Так почему вы сравниваете customer.done === true? – squiroid

+1

ниже оба ответа хороши! вы можете выбрать любой :). quick –

+0

Единственная проблема, с которой вы сталкиваетесь, заключается в том, что вы сравниваете '===', а не присваиваете '=' значение 'true'. Вам также не нужно ничего возвращать из '$ scope.upCall'. Подходы, предложенные ниже, на самом деле субоптимальны. Тот, где возвращается '$ index', упорядочение будет его нарушать. А другой, возвращающий область ребенка, совершенно не нужен. –

ответ

0

попробовать this вариант

<div ng-repeat="customer in customers | orderBy: '-call'"> 
     <button ng-click="upCall(**this**)" class="glyphicon glyphicon-earphone"></button> 


$scope.upCall = function(customerContext) { 
    **customerContext.done = true;** 
    return customerContext; 
} 
0

return customer.done === true; это заявление проверяет, является ли customer.done в точности равным true., Который вернет false. Вы не мутируете customer.done .so

return customer.done = true; 
+0

Я пробовал это до того, как дорого, и он никогда не работал. – user3651862

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