我创建了一个输入字段,用户可以在其中输入电影标题并单击将标题插入数据库的div。但我想要的不是保存用户输入,而是将文本值保存在被点击的元素中。
这是目前的情况,
%div{"ng-click" => "addMovie()"}
%input{:type => "text", "ng-model" => "title"}
addMovie action.
我想要的,
%div{"ng-click" => "addMovie()"}
%span.title{"ng-model" => "title"}
{{ movie.original_title }}
现在当用户点击div时,它应该将文本(movie.original_title)保存在span标记内。
控制器,
$scope.addMovie = function() {
if(!$scope.title || $scope.title === '') { return; }
movies.create({
title: $scope.title,
}).then(init);
$scope.title = '';
};
但是我不确定要在哪里更改,我仍然可以使用ng-model分配title
或者我应该在控制器中更改它吗?
这是标题的显示方式。用户可以搜索电影标题,并使用所有标题创建下拉列表。我希望用户点击.addmovie
div,它应该保存标题,发布日期等内容。
%input{"ng-change" => "search(searchquery)", "ng-model" => "searchquery", "ng-model-options" => "{ debounce: 500 }", :id => "search_input", :placeholder => "Search a movie!"}
%ul#showresults
%li.search_results{"ng-repeat" => "movie in movieList"}
.addmovie
%span
Add Movie
%img{"ng-src" => "http://image.tmdb.org/t/p/w500/{{ movie.poster_path }}"}
%span
{{ movie.original_title }}
编辑接近答案,这很简单
$scope.addMovie = function() {
movies.create({
title: $('.title').text(),
}).then(init);
};
现在的问题是它会保存所有.titles
而不是点击的所有{{1}},但这应该是一个简单的解决方法。
答案 0 :(得分:0)
我不确定这是不是应该这样做,但它对我有用。
$scope.addMovie = function() {
movies.create({
title: $(event.currentTarget).parent().find('.title').text()
}).then(init);
};