我目前正在尝试在一个页面上加载多个谷歌地图.我不想将谷歌地图API脚本包含在HTML代码中,因为我不希望加载脚本,除非地图在当前页面中.我想在单个指令中调用我的地图,该指令也将执行谷歌地图API脚本延迟加载.
所以我四处搜索并找到了一个我稍微调整过的解决方案,但我的问题是它只会加载一个地图而不会加载其他地图.
我的HTML看起来像这样:
<div id="mapParis" class="google-map" lat="48.833" long="2.333"></div>
<div id="mapWashington" class="google-map" lat="38.917" long="-77.000"></div>
<div id="mapTokyo" class="google-map" lat="35.667" long="139.750"></div>
Run Code Online (Sandbox Code Playgroud)
指令:
// Google Map
app.directive('googleMap', ['$window', '$q', function( $window, $q ) {
function loadScript() {
console.log('loadScript');
// use global document since Angular's $document is weak
var s = document.createElement('script');
s.src = '//maps.googleapis.com/maps/api/js?sensor=false&language=en&callback=initMap';
document.body.appendChild(s);
}
// Lazy loading of the script
function lazyLoadApi(key) {
console.log('lazyLoadApi');
var deferred = $q.defer();
$window.initMap = function () {
deferred.resolve();
};
if ( $window.attachEvent …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个新项目,我想给它一个良好的开端,不要搞砸未来的迭代.
该应用程序将有两个方面:
- 客户端.
- 管理员方面.
它们中的每一个都有单独的API,我将它们分成2个应用程序似乎是合乎逻辑的.
他们每个人都有自己的登录方式.
在阅读了很多关于这个主题的主题后,我正在考虑使用这个结构:
app/
admin/
home/
home.tpl.html // admin home template
admin.html // admin index, including templates via ng-view
admin-api.js // admin api
admin.js // admin app
admin-login/
home/
home.tpl.html
admin-login.html
admin-login-api.js
admin-login.js
client/
home/
home.tpl.html
client.html
client-api.js
client.js
client-login/
home/
home.tpl.html
client-login.html
client-login-api.js
client-login.js
css/
fonts/
img/
js/
libs/
Run Code Online (Sandbox Code Playgroud)
为什么要将登录与其他登录分开?因为我希望登录页面更轻(我不会加载相同的CSS/JS文件),并且如果用户没有登录则无法访问其他文件/视图.
如果我们将路由映射到此结构,它将提供如下内容:
/
app/client/client.html
/login
应用程序/客户端,登录/客户的login.html
/admin/
应用程序/管理/ admin.html
/admin/login
应用程序/管理登录/管理员-的login.html
/
如果用户已登录 - >如果用户未登录则显示主页
- >重定向到/login
我将主要使用 …
我想把一些精美的菜单显示为一棵树,在那里我们可以很容易地看到每个页面和他们父母之间的关系.
离工作不远,但我需要你的帮助和想法.
这是我做的:http: //jsfiddle.net/bXCHn/6/
例如,如果您将鼠标悬停在"第4 - 3 - 2页",它将突出显示"第4 - 3页"和"第4页".这是基本的HTML和CSS,如果删除jQuery脚本,它仍然可以工作.
jQuery允许我们添加一个类,该类将突出显示li树中每个先前元素的路径(边框).它不会考虑第一级导航:
$(this).prevAll('li:not(.first-lvl-item)').addClass('hover-prev-item');
Run Code Online (Sandbox Code Playgroud)
现在保持与上面相同的例子.您将看到从"第4页"开始的第一行走得太远(事实上它正在使用整个li元素).我希望它能在"第4 - 3页"前停下来......
我不知道是否必须改变我的所有结构,或者我是否应该以另一种方式处理它.我尝试了很多东西,但没有任何效果......
谢谢你的帮助 !
我的问题很简单:
我有一个名为users的表.这些用户可以有很多联系人.这些联系人是其他用户.
所以我有一个名为userHasContacts的表,其中包含所有者的id(userID)和联系人的id(contactID).
这两个外键都引用用户表.
这是我漂亮的图表:
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
Run Code Online (Sandbox Code Playgroud)
在sequelize中,在我的逻辑中,我会写:
Users.hasMany(Users, {foreignKey: 'userID', joinTableName: 'userHasContacts'} );
Users.hasMany(Users, {as: 'Contacts', foreignKey: 'contactID', joinTableName: 'userHasContacts'} );
Run Code Online (Sandbox Code Playgroud)
但似乎它不能以这种方式工作,而且我已经尝试了几种方式来编写这种关系...
对我有用的唯一一条线是
Users.hasMany(UserHasContacts, {foreignKey: 'contactID', joinTableName: 'userHasContacts'} );
UserHasContacts.findAndCountAll({ where: {userID: id} }).success( function(result) {
res.json(result);
});
Run Code Online (Sandbox Code Playgroud)
但后来我无法在查找查询中加入用户表(通过Eager加载),它只是返回userHasContacts内的数据. …
angularjs ×2
css ×1
directive ×1
google-maps ×1
html ×1
jquery ×1
lazy-loading ×1
login ×1
mysql ×1
routes ×1
sequelize.js ×1