2015-01-27 2 views
0

Я получил это две функцииФункция не может увидеть изменения в массиве

Функция 1

$scope.selected = []; 
    $scope.selected.project = ['name:test, id:1']; 
    $scope.selectedFs = function($item, $model) { 
      $scope.selected.project = [$model]; 
     console.log($scope.selected.project[0]); 
     } 
    }; 

Функция 2

$scope.create = function() { 
     var sign = new Sign ({ 
      sig: document.getElementById('canvas').toDataURL(), 
      projectId: $scope.proid, 
      project: $scope.selected.project[0], 
      timesheetId: $scope.timesheetsId 
     }); 
     console.log($scope.selected.project[0]); 

     sign.$save(function(response) { 

     }, function(errorResponse) { 
      $scope.error = errorResponse.data.message; 
     }); 
    }; 
} 
]); 

Когда я вызвать функцию 1, я могу видеть, что выбран. изменение проекта в консоли, но когда я использую функцию 2 после, он просто использует ['name: test, id: 1']

TEST

selectedFs('1','1') -> 
CONSOLE = [1] -> 
create() -> 
CONSOLE = ['name:test, id:1'] 

Почему функция dosen't 2 имеет новое значение?

+0

Ваш объект $ scope.selected.project не определен. Где вы его устанавливаете? – Tom

+0

@Tom console.log ($ scope.selected.project) дает undefind и console.log ($ scope.selected.project) дает тот же типError – Stweet

+0

Извините, я отредактировал свой комментарий! См. Выше. – Tom

ответ

0

Ваша первая функция содержит следующую строку:

$scope.selected.project = [$model]; 

Итак, если вы установите $ модель на 1 (что вы делаете в строке выше), это, конечно, вернуться [1].

В вашей второй функции я не вижу $ scope.selected.project в левой части любого присваивания, поэтому ему просто не присваивается значение [1].

+0

Итак, как мне присваивать значение выбранному.проекту в selectedFs() правильно – Stweet

+0

'$ scope.select.project = [1]'? У меня на самом деле нет достаточной информации, чтобы узнать, откуда вы хотите получить ее ценность, - эта функция взята из контроллера с некоторой дополнительной информацией в нем? – Tom

+0

его контроллер, и, на мой взгляд, я сначала запускаю функцию selectFs с помощью кнопки ввода +(), а затем после того, как я запустил create() также с помощью кнопки Так что не следует создавать значения ввода, после того как я вызвал эта функция первая. – Stweet