2016-04-13 1 views
0

Я знаю, что есть много вопросов, таких как ответы на них, но это нечто иное.

<div ng-repeat="hello in hello track by $index"> 
<div ng-click="data($index)"> 
{{data}} 
</div> 
</div> 


$scope.data = function($index) { 
    $scope.sweet = $index; 
    console.log($scope.sweet); 
} 

Я передаю значение через ng-click и я получаю контроллер тоже. Но когда я передаю его с помощью $scope, его значение доступно только в том же представлении, где ng-click использовался не в других представлениях. Отношения.

+0

Что мы должны делать с этим кодом? Можете ли вы поделиться кодом, который не работает? –

+0

Я не вижу 'ng-repeat' где-нибудь. Он есть? – Rayon

+0

извините, что не могу показать вам, но здесь я не могу получить значение $ scope.sweet в html, например, когда я использую {{sweet}} в html. Я ничего не получаю – Atula

ответ

1

Atula, у нас есть много способов, чтобы передать значение от одной функции к другой функции или контроллера, Например: сохранить значение в некоторых глобальных переменных, сохранить значение в $ rootscope или сохранить значение в loc alstorege из angularjs

Так я думаю, что простые способы, чтобы сохранить значение в $ rootScrop

$scope.data = function($index) { 
$rootScope.sweet = $index; 
console.log($scope.sweet); 
} 

Вам нужно определить $ rootScope в контроллере получить доступ к этому: сейчас называют это где вы хотите получить доступ к значению индекса этой функции

alert($rootScope.sweet); 

Он покажет предупреждение о вашей ценности. Я надеюсь, что это решит вашу проблему. Счастливые жизненные коды кода

+0

большое вам спасибо @ A-Droid – Atula

+0

Это моя ответственность, чтобы помочь другим, –

0

Это потому, что объект $ scope является локальным для представления. Для получения дополнительной информации вы можете обратиться к this.

-1

Я думаю, что нужно что-то вроде этого:

<div ng-repeat="item in data track by $index"> 
<div ng-click="getItem($index,item)"> 
{{item}} 
</div> 
</div> 

в контроллер:

$scope.data = [{sweet:something},{sweet:somethingelse}]; 
$scope.sweet=''; 
$scope.sweetIndx=''; 
$scope.getItem = function($index,item) { 
    $scope.sweetIndx = $index;//so you get the index into the array 
    $scope.sweet = item;//you also get the name of the item 
    console.log($scope.sweet); 
} 
+0

Зачем использовать $ index для функции в контроллере? –

+0

действительно мой ng-repeat работает все правильно, мне не нужно ничего редактировать. Моя проблема REAL заключается в том, что {{sweet}} доступен только в том же представлении, где используется ng-click не в других представлениях. – Atula