如何在给定的ID列表中查找帖子?
这不起作用:
posts = Post |> where(id: [1, 2]) |> Repo.all
Run Code Online (Sandbox Code Playgroud)
Rails中的示例:
Post.where({ id: [1, 2]})
# SELECT * FROM posts WHERE id IN (1, 2)
Run Code Online (Sandbox Code Playgroud) 如何创建全局可访问的服务,currentUser()只在页面加载时调用服务器一次,如果用户登录然后保留它并向控制器或状态提供数据直到注销?现在我在许多州或控制器中解决了很多次currentUser(),我在docs中发现:authparseresponse它可以自己做服务,但我不知道如何以正确的方式处理这个问题.
例如在ui-router中我有两个服务器调用,只有在加载页面时才足够:
.state('login', {
url: '/login',
templateUrl: 'auth/_login.html',
controller: 'AuthCtrl',
onEnter: [
'$state', 'Auth',
function($state, Auth) {
Auth.currentUser().then(function() {
$state.go('home');
});
}
]
})
.state('dashboard', {
url: '/dashboard',
templateUrl: 'dashboard.html',
onEnter: [
'$state', 'Auth',
function($state, Auth) {
Auth.currentUser().then(function(user) {}, function(err) {
$state.go('home');// user not logged in
});
}
]
})
Run Code Online (Sandbox Code Playgroud)
或者每次在NavController中调用下一个服务器:
app.controller('NavController', [
'$state', '$scope', 'Auth', function($state, $scope, Auth) {
$scope.signedIn = Auth.isAuthenticated;
$scope.logout = Auth.logout; // logout function
Auth.currentUser().then(function(user) {
$scope.user = user; …Run Code Online (Sandbox Code Playgroud) javascript devise angularjs angular-services angular-ui-router
我不知道如何使用webpack从node_modules libs加载任何CSS,例如我安装了传单,每次加载尝试都leaflet/dist/leaflet.css失败了.
你能举例说明如何从node_modules加载静态样式吗?
我目前的webpack配置如下.另外我正在使用extract-text-webpack-plugin和sass-loader我的项目scss文件运行良好,我也css-loader有,我有解决静态CSS文件或添加一些东西stylePathResolves?
//require('leaflet/dist/leaflet.css');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var webpack = require("webpack");
var path = require('path');
var stylePathResolves = (
'includePaths[]=' + path.resolve('./') + '&' +
'includePaths[]=' + path.resolve('./node_modules')
)
module.exports = {
entry: ".js/app.js",
output: {
path: "./static/js",
filename: "app.js"
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel'
}, {
test: /\.scss$/,
loader: ExtractTextPlugin.extract(
'style',
'css' + '!sass?outputStyle=expanded&' + stylePathResolves
)
}
]
},
plugins: …Run Code Online (Sandbox Code Playgroud) 如何在除登陆页面之外的每个页面上显示导航栏,以便不必在每个所需页面上附加导航栏文件?现在我在主应用程序布局上附加了导航栏,应该如何处理以保持干燥?
演示(每页都有导航栏):
var App = angular.module('app', ['ui.router']);
App.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home.html'
})
.state('about', {
url: '/about',
templateUrl: 'about.html'
}).state('landingpage', {
url: '/landingpage',
templateUrl: 'landingpage.html'
});
$urlRouterProvider.otherwise('/home');
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<div ng-app="app">
<div ng-include="'navbar.html'"></div>
<div class="container">
<div ui-view></div>
</div>
<script type="text/ng-template" id="navbar.html">
<nav class="navbar navbar-inverse" role="navigation">
<div class="navbar-header">
<a class="navbar-brand" ui-sref="landingpage">LandingPage</a>
</div>
<ul class="nav navbar-nav">
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="about">About</a></li>
<li ng-hide="signedIn()"><a href="/login">Log In</a></li>
<li ng-show="signedIn()"><a ng-click="logout()">Log Out</a></li>
</ul> …Run Code Online (Sandbox Code Playgroud)javascript twitter-bootstrap angularjs angularjs-ng-include angular-ui-router
我正在尝试page_elements使用.grid-cell字符串html中的适当索引绑定数组,以便它将显示在页面上而不是在我的指令中.我存储给定单元格元素的索引,然后过滤它们以检索匹配的page_elements对象.
但是,我无法摆脱ng-repeat网格中的冗余,其中有一个元素.已删除的元素将替换为空对象{},但应将其拼接,以便将网格元素保持在正确的位置.移动的元素应该能够放入其他网格单元格中.如果索引被正确分配,那么指令应该使用angular-drag-and-drop-lists,如何修复它?
如何在给定网格中仅ng-repeat匹配匹配page_elements一次?例如,现在page_elements在那里grid_id: 2的显示三次ng-repeat在第三格栅.如何删除永久页面元素对象并将单元格元素保存在正确的位置?在当前的解决方案中,拖放机制也被打破了.
当前代码片段和jsfidde:
var app = angular.module('app', ['dndLists']);
app.controller('homeCtrl', function ($scope) {
$scope.html_string = "<div class='container'><div class='row'><div class='col-xs-12'><div class='row'><div class='col-xs-4 grid-cell'></div><div class='col-xs-4 grid-cell'></div><div class='col-xs-4 grid-cell'></div></div><div class='row'><div class='col-xs-4 grid-cell'></div><div class='col-xs-4 grid-cell'></div><div class='col-xs-4 grid-cell'></div></div></div></div></div>";
$scope.page_elements = [{
"grid_id": 0,
"position": 0,
"snippet": "<h4>First Grid 0</h4>",
"template": "snippet"
}, {
"grid_id": 0,
"position": 1,
"snippet": "<h2>Second Grid 0</h2>",
"template": …Run Code Online (Sandbox Code Playgroud)当我滚动地图画布时,如何向上和向下滚动左列?
Map已禁用滚轮传播,如果可能,只有CSS才能完成它.我试图#map_canvas用flex属性包装其他div并将map设置为绝对位置和100vh/vw,但它与轮泡没有区别.
$(document).ready(function() {
var post = "<h3>Post title</h3><div>Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</div><hr>";
var i = 0;
while (i < 10) { $('#left_container').append(post); i++; }
var options = {
zoom: 10,
scrollwheel: false,
center: new google.maps.LatLng(49, 17)
};
var map = new google.maps.Map($('#map_canvas')[0], options);
$("#map_canvas").scrollLeft();
});Run Code Online (Sandbox Code Playgroud)
.flexbox-container {
display: -ms-flex;
display: -webkit-flex;
display: flex;
flex-direction: row;
flex-wrap: wrap;
height: 100vh;
}
.flexbox-container #left_container {
flex: 1; …Run Code Online (Sandbox Code Playgroud)如何从指令链接访问指令控制器功能?传递给链接的Bellow控制器是空的,我想在其中获取show()hide()函数.
我目前的指示:
app.directive('showLoading', function() {
return {
restrict: 'A',
// require: 'ngModel',
scope: {
loading: '=showLoading'
},
controller: function($scope, $element) {
return {
show: function() {
alert("show");
},
hide: function() {
alert("hide");
}
};
},
link: function($scope, $element, $attrs, controller) {
$scope.$watch('loading', function(bool) {
if (bool) {
controller.show();//undefined
} else {
controller.hide();
}
});
}
};
});
Run Code Online (Sandbox Code Playgroud) 是否有可能使用在类中可见的全局变量创建配置文件?与此类似的东西:
config.php文件:
$config['host_address'] = 'localhost';
$config['username '] = 'root';
$config['password'] = 'root';
$config['name'] = 'data';
Run Code Online (Sandbox Code Playgroud)
db.php中:
include('config.php');
class DB
{
private $_config = array($config['host_address'], $config['username'], $config['password'], $config['name']);
...
Run Code Online (Sandbox Code Playgroud)
目前的财产:
private $ _config = array();
Run Code Online (Sandbox Code Playgroud)
我不想通过构造函数传递给我的Singleton数据库连接器:
DB::getInstance(array('localhost', 'root', 'root', 'data'));
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Geo库通过Phoenix模型更改集存储Geo.Point.我的参数是:{coordinates: [49.44, 17.87]}或者更喜欢{coordinates: {latitude: 49.44, longitude: 17.87}}
在iex控制台中,我试过:
iex(5)> changeset = Place.changeset(%Place{}, %{coordinates: [49.44, 17.87]})
%Ecto.Changeset{action: nil, changes: %{}, constraints: [],
errors: [coordinates: "is invalid"], filters: %{}
model: %Myapp.Place{__meta__: #Ecto.Schema.Metadata<:built>,
coordinates: nil, id: nil, inserted_at: nil, updated_at: nil}, optional: [],
opts: [], params: %{"coordinates" => [49.445614899999995, 17.875574099999998]},
repo: nil, required: [:coordinates],
Run Code Online (Sandbox Code Playgroud)
所有其他尝试都以Poison.Parser错误结束.
应该从客户端看起来如何创建有效的变更集?
模型:
defmodule MyApp.Place do
use MyApp.Web, :model
schema "place" do
field :coordinates, Geo.Point
timestamps
end
@required_fields ~w(coordinates)
@optional_fields ~w()
def changeset(model, params …Run Code Online (Sandbox Code Playgroud) 在这两种方法中,我坚持如何通过给定的一组id或组映射进程,然后将存储的struct映射到过滤数据.
%{group => [users]} 实现.我意识到组将与用户相反,因此我创建了一个使用组名作为键的处理模块.
恐怕在未来还会有在几组很多用户,所以我的问题是我怎么可以拆分当前UserGroupServer模块,以保持按组名称标识许多分离的过程?我想保留当前模块的功能,在init进程中按组列表,另外我不知道如何映射每个进程以通过user_id获取组?
目前我lib/myapp.ex通过在子树列表中包含模块在Phoenix中只启动一个进程,因此我可以UserGroupServer直接在Channels中调用.
defmodule UserGroupServer do
use GenServer
## Client API
def start_link(opts \\ []) do
GenServer.start_link(__MODULE__, :ok, opts)
end
def update_user_groups_state(server, data) do
{groups, user_id} = data
GenServer.call(server, {:clean_groups, user_id}, :infinity)
users = Enum.map(groups, fn(group) ->
GenServer.call(server, {:add_user_group, group, user_id}, :infinity)
end)
Enum.count(Enum.uniq(List.flatten(users)))
end
def get_user_groups(server, user_id) do
GenServer.call(server, {:get_user_groups, user_id})
end
def users_count_in_gorup(server, group) do
GenServer.call(server, {:users_count_in_gorup, group})
end
## Callbacks (Server API)
def init(_) do
{:ok, …Run Code Online (Sandbox Code Playgroud)