我已经坚持了几天了。我想根据当前用户(id)显示一个项目。
例如:
<!-- if current user has already 'liked' this post -->
Show 'UnLike' button
<!-- else -->
Show 'Like' button
<!-- end -->
在 Angularjs 中如何使用基于当前用户 id 的条件语句?
如果有帮助,我将 Rails 与 Devise 一起用作我的后端。
我已经坚持了几天了。我想根据当前用户(id)显示一个项目。
例如:
<!-- if current user has already 'liked' this post -->
Show 'UnLike' button
<!-- else -->
Show 'Like' button
<!-- end -->
在 Angularjs 中如何使用基于当前用户 id 的条件语句?
如果有帮助,我将 Rails 与 Devise 一起用作我的后端。
让我们轻松一点。
首先,设置 gon。
在您的 Rails 控制器级别,无论在哪里需要,或在before_filter
(before_action
在 Rails 4 中),执行:
gon.current_user = { id: current_user.id }
然后在角度方面:
app.service 'sessionService', [ '$window', ($window)->
factory =
current_user: ->
$window.gon.current_user
factory
]
然后注入您的会话服务,您将可以通过该方法访问该current_user
对象
如果您想要在客户端上处理此问题的“Angular 方式”,您可能需要查看我创建的工作 CodePen 示例。
模板:
<section ng-app="app" ng-controller="MainCtrl">
<ng-switch on="hasLiked">
<button class="btn btn-primary" ng-switch-when="true">Unlike</button>
<button class="btn btn-primary" ng-switch-when="false">Like</button>
</ng-switch>
<br>
<button class="btn toggle" ng-click="hasLiked = !hasLiked" ng-bind-template="Change result of service call from '{{hasLiked}}' to '{{!hasLiked}}'">Change</button>
</section>
的JavaScript:
var app = angular.module('app', []);
app.factory('userSvc', function() {
// mock $http lookup
var lookupResult = true;
return {
hasLiked: lookupResult
};
});
app.controller('MainCtrl', function($scope, userSvc) {
$scope.hasLiked = userSvc.hasLiked;
});