2016-01-30 2 views
0

Следующий код просто отображает форму и сохраняет входной сигнал с editDownload способом:Как ссылаться на область дочерних элементов родительского контроллера?

JS:

$scope.editDownload = function(downloadId) { 
    var Download = Parse.Object.extend('Download') 
    var download = new Download() 
    var data = { 
    'title': $scope.download.title, 
    'link': $scope.download.link 
    } 
    download.save(data, { 
    success: function(result) { 
     console.log('Success:', result.toJSON()) 
    }, 
    error: function(result, error) { 
     alert('Error:', error.message) 
    } 
    }) 
} 

HTML:

<ul class="text-center no-bullet"> 
    <li ng-repeat="download in downloads"> 
    <form> 
     <input type="text" class="form-control" ng-model="download.title"> 
     <input type="text" class="form-control" ng-model="download.link"> 
     <button type="button" class="btn btn-primary" ng-click="editDownload('{{download.objectId}}')">Submit</button> 
    </form> 
    </li> 
</ul> 

Там проблема, хотя, $scope.download.title и $scope.download становятся undefined, потому что их значения устанавливаются внутри ng-repeat, следовательно, в другом объеме.

Как можно ссылаться на эту область «ребенка» от родительского контроллера?

Примечание: Я не могу сделать $parent.download.title и $parent.download.link в шаблоне, потому что тогда ng-model ничего не отображается (не будет ссылок на детей в нг-повторить больше

ответ

0

Вы дон. «т должны передать параметр в editDownload() через выражение можно просто передать editDownload(download.objectId)

результирующий кнопка тег будет выглядеть следующим образом:..

<button type="button" class="btn btn-primary" ng-click="editDownload(download.objectId)">Submit</button> 

Кроме того, $scope.download не относится к download в ng-repeat.

Если вы хотите что-то сделать с объектом download, который вы проходите через editDownload(), вы можете просто передать объект как параметр.

editDownload(download) 

Вместо передачи download.objectId как пары.

Наконец, он должен выглядеть следующим образом:

<button type="button" class="btn btn-primary" ng-click="editDownload(download)">Submit</button> 
Смежные вопросы