Angular/Rails从表中获取最后保存的数据
Angular/Rails get last saved data from table
我是AngularJS的新手,我正在尝试将Angular集成到我已经构建的Rails应用程序中。在我的rails应用程序中有一个发布到提要的功能。我有Angular的工作,所以它检索提要,并将最新的记录发布到提要。
我的问题是它只发布表单的内容。我也想检索用户id,这样我就可以呈现出用户名、个人资料图片等。这些信息在我刷新页面时会显示,但在发布后不会立即显示,只显示帖子的内容。
microposts.js.coffee
app = angular.module('micropostApp', ['ui.router', 'ngResource'])
app.factory 'Micropost', ["$resource", ($resource) ->
return $resource('/')
]
app.factory 'createMicropost', ["$resource", ($resource) ->
return $resource('/microposts')
]
app.factory 'Comments', ["$resource", ($resource) ->
return $resource('/microposts/:id/comments', id: '@id')
]
app.controller 'MicropostsController', [
'$scope'
'Micropost'
'createMicropost'
'Comments'
($scope, Micropost, createMicropost, Comments) ->
Micropost.query (data) ->
$scope.microposts = data
$scope.addPost = ->
if !$scope.newPost or $scope.newPost == ''
return
post = createMicropost.save($scope.newPost)
console.log("POST: " + angular.toJson(post))
$scope.microposts.unshift(post)
$scope.newPost = {}
]
微柱控制器
respond_to :json
def create
@micropost = current_user.microposts.create!(micropost_params)
respond_with @micropost
end
查看
<div ng-app="micropostApp" ng-controller="MicropostsController">
<div class="row">
<div class="col-md-12">
<form ng-submit="addPost()" style="margin-top:30px;">
<div class="form-group">
<input type="textarea"
class="form-control"
placeholder="Post an update..."
ng-model="newPost.content"></input>
</div>
<button type="submit" class="btn btn-primary pull-right">Post</button>
</form>
</div>
</div>
<div ng-repeat="post in microposts">
<div class="row">
<div class="panel panel-default">
<div class="panel-body">
<li id="{{post.id}}">
<div class="row">
<div class="col-md-12">
<aside>
<a href="/{{post.user.slug}}">{{post.user.name}}</a>
</aside>
<aside>
<li id="feed-fat-menu" class="dropdown pull-right feed-dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<b class="glyphicon glyphicon-chevron-down"></b>
</a>
<ul class="dropdown-menu">
<li>Delete</li>
</ul>
</li>
<span class="user"> <a href="/{{post.user.slug}}">{{post.user.name}}</a> </span>
<span class="content">{{post.content}}</span>
<hr>
<span class="timestamp pull-right"> Posted {{post.created_at}} ago. </span>
<span class="pull-left" style="padding-right: 5px;"><a>Comment </a>({{post.comments.length}})</span>
<span class="pull-left" style="padding-right: 5px;">
<a>Likes</a> ({{post.likes.length}})
</span>
<br />
</aside>
</div>
</div>
</li>
</div>
</div>
</div>
</div>
我不熟悉coffescapet。如果它是在页面重载的数据中加载的,我只需要在$scope.addPost调用堆栈中添加一个对触发它的函数的调用。
$scope.addPost = function(){
if(!$scope.newPost || $scope.newPost == ''){
return
}
post = createMicropost.save($scope.newPost);
console.log("POST: " + angular.toJson(post));
$scope.microposts.unshift(post);
$scope.newPost = {};
Micropost.get();
}
app.factory("Micropost", ["$resource", function($resource) {
return $resource("/", {}, {
get: {
method: "GET",
cache: true
}
});
}]);
相关文章:
- 表追加而不附加最后一个元素
- Amd,希望确保某个东西总是最后执行
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用 Angular JS 将数据保存在数据库中
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 键入最后一位数字后自动提交
- 无法在Ionic select中预先选择最后一个选项
- 动态插入的表:JQuery未检测到最后一行
- Angular/Rails从表中获取最后保存的数据
- Parse.com在循环中保存对象,只保存最后一个对象
- 如何在焦点上保存最后一个元素的值
- 闭包的意外行为:回调保存最后一个值
- Titanium保存最后查看的窗口的状态
- 在Cookie中保存用户的最后一种语言偏好
- 获取之前所有td元素的总和,并将其保存在最后一个td元素中——jQuery
- 图像切片,只保存(通过filesver .js)最后一片的顺序
- 数据库保存和检索最后保存的值
- 使用Mongoose保存多个文档,并在保存最后一个文档时执行操作
- 本地存储保存表单N页数据,直到最后提交