我已经看到angular.factory()和angular.service()用于声明服务; 但是,我在官方文档中找不到 angular.service任何地方.
这两种方法有什么区别?应该用什么(假设他们做不同的事情)?
我正在尝试在其中包含一个HTML代码段ng-repeat,但我无法让include工作.似乎当前的语法与ng-include以前的语法不同:我看到许多例子使用
<div ng-include src="path/file.html"></div>
Run Code Online (Sandbox Code Playgroud)
但在官方文档中,它表示要使用
<div ng-include="path/file.html"></div>
Run Code Online (Sandbox Code Playgroud)
但是然后在页面上显示为
<div ng-include src="path/file.html"></div>
Run Code Online (Sandbox Code Playgroud)
无论如何,我试过了
<div ng-include="views/sidepanel.html"></div>
Run Code Online (Sandbox Code Playgroud)
<div ng-include src="views/sidepanel.html"></div>
Run Code Online (Sandbox Code Playgroud)
<ng-include src="views/sidepanel.html"></ng-include>
Run Code Online (Sandbox Code Playgroud)
<ng-include="views/sidepanel.html"></ng-include>
Run Code Online (Sandbox Code Playgroud)
<ng:include src="views/sidepanel.html"></ng:include>
Run Code Online (Sandbox Code Playgroud)
我的代码片段不是很多代码,但是它有很多内容; 我在里面ng-repeat读动态加载模板可能会导致问题,所以我用sidepanel.html单词替换了内容foo,但仍然没有.
我也尝试直接在页面中声明模板,如下所示:
<script type="text/ng-template" id="tmpl">
foo
</script>
Run Code Online (Sandbox Code Playgroud)
并贯穿ng-include引用脚本的所有变体,但id仍然没有.
我的页面中有更多内容,但现在我已将其删除到这个:
<!-- index.html -->
<html>
<head>
<!-- angular includes -->
</head>
<body ng-view="views/main.html"> <!-- view is actually set in the router -->
<!-- views/main.html -->
<header>
<h2>Blah</h2>
</header> …Run Code Online (Sandbox Code Playgroud) 我尝试搜索这个,但SublimeText中有一个不同的功能,人们称之为"预览",所以我找不到任何相关的信息.
如何在文档打开时禁用SublimeText2中显示的预览导航图像?此外,这个功能叫什么?

我有一些使用jQuery进行动画效果的自定义指令(angular的内置ngShow/ngHide等功能很强,但并不漂亮).我想我记得在文档中读取angular有自己的DOM选择器(类似于angular.export()或者angular.select())我应该使用而不是$(SELECTOR); 但是我现在找不到它.
我正在做这样的事情:
//view
<div scroll-to="element"> //`element` is set via ng-click
…
</div>
//directive
link: function(scope, elm, attrs)
{
scope.$watch(attrs.scrollTo, function scrollToAction(newValue,oldValue)
{
if ( newValue !== oldValue )
{
elm.animate({
scrollTop:
$('#'+newValue).offset().top //replace jquery selector with angular's
- elm.offset().top
+ elm.scrollTop()
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
我并没有真正操纵$('#'+newValue),只是检索有关它的信息,所以我认为我不会对Angular犯罪.
更新ngModel(以及随后的验证)的默认行为正在改变 ; 我想把它改成模糊.该文档仅解释如何做到这一点上通过的情况下,逐案:<ANY ng-model-options="{ updateOn: 'blur' }"></ANY>.我甚至通过源代码查看,但不知何故找不到ngModelOptions和ng-model-options(尽管文档中都出现了这些内容,这是从源代码中删除的).
我正在尝试为包含的模板动态分配控制器,如下所示:
<section ng-repeat="panel in panels">
<div ng-include="'path/to/file.html'" ng-controller="{{panel}}"></div>
</section>
Run Code Online (Sandbox Code Playgroud)
但Angular抱怨说这{{panel}}是不确定的.
我猜,{{panel}}是不是定义尚未(因为我可以附和了{{panel}}在模板中).
我已经看到很多人设置ng-controller等于变量的例子如下:ng-controller="template.ctrlr".但是,如果没有创建重复的循环循环,我无法弄清楚如何{{panel}}在ng-controller需要时获得可用值.
PS我也尝试ng-controller="{{panel}}"在我的模板中设置(认为它必须已经解决),但没有骰子.
我只是注意到gMap视图工具正在显示...而不是异常.他们的地区似乎仍然得到了恰当的定义 - 我可以很好地与他们互动,这只是他们的外表看起来搞砸了.
我没有将任何CSS应用到任何地图片段,并且我应用于地图容器的唯一的CSS是width:100%; height:100%; z-index:0;(我通常这样做).
我确实有它在页面上的其他元素position:absolute;,并position:fixed;和一些高z-indexS(500 1000).它们是否有可能导致Map工具的视觉扭曲?
我在Chrome,Chrome Canary,Ffx,Safari和Opera(在Mac OSX上)的最新版本中看到了同样奇怪的视觉失真.
我检查了dev工具/ firebug,没有意外的CSS被应用到地图的容器或直接应用到它的工具.

这是确切的HTML(我剥离了其他元素和css,但仍然发生了奇怪的事情):
<html style="width:100%;height:100%;">
<head>
<link rel="stylesheet" href="shared/bootstrap/css/foundation.min.css">
<link rel="stylesheet" href="shared/bootstrap/css/v2.2.2.min.css">
<script
type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=...">
</script>
<script type="text/javascript">
function ginit() {
var vancouver = new google.maps.LatLng(49.285415,-123.114982);
var mapOptions = {
center: vancouver,
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(
document.getElementById("map"),
mapOptions
);
var infowindow = new google.maps.InfoWindow(),
marker;
}//ginit()
</script>
</head>
<body onload="ginit();" style="width:100%;height:100%;">
<div id="map" style="width:100%;height:100%;"></div>
</body> …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来指定一条线如果它不能以类似于­(软/自由连字符)的方式放在它的线上而应该中断,但是有一个空格.我尝试使用谷歌搜索,但没有得到很多相关的点击(尽管指定"html",主要是针对InDesign),我得到的是一些人说他们不知道的方式.
防爆.
你好,我的名字
是foo.
与
你好,
我的名字是foo.
但如果空间可用:
你好,我的名字是foo.
对于特异性,我不是故意的white-space: normal/nowrap/pre/…,我不想强迫休息<br />.
我正在使用AngularJS,所以大多数都是通过JavaScript处理的,所以如果有一个简单/有效/聪明的方法来做到这一点,我会对它持开放态度.
我正在使用AngularUI的uiMap指令来实例化谷歌地图.uiMap指令适用于硬编码数据({mapOptions}和[myMarkers]); 但是当我通过$http.get()(在AJAX调用完成之前指令触发)检索此数据时遇到了麻烦.
最初我在我的GoogleMaps控制器中执行GET ,但是当我意识到事情发生的时候,我把GET转移到了uiMap指令中.我有两个问题:
[myMarkers]
所以我的问题是,是否在应用程序的其他地方我可以在指令运行之前检索数据(并将其应用于范围)?
我读了$ q,这听起来像我想要的,但我不确定我是否可以在我的控制器中而不是在指令中做到(也不确定$q.defer.resolve()有什么不同$http.success()).
编辑我使用的大部分代码都是从AngularUI的doc中复制/粘贴,但这里有一个插件:http://plnkr.co/edit/t2Nq57
<!-- index.html -->
<div
id="map_container"
ng-controller="GoogleMaps">
<div ui-if="mapReady">
<div
ng-repeat="marker in markers"
ui-map-marker="markers[$index]"
ui-event="{'map-click':'openMarkerInfo(marker)'}"
></div>
<div
ui-map-info-window="myInfoWindow"
ng-include="'infobox.html'"
></div>
<div
id="map_canvas"
ui-map="myMap"
ui-options="mapOptions"
></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
警告1 uiIf不能在指定控制器提供其条件的同一元素中(uiIf具有比ngController更高的优先级,因此在uiIf执行之前它的控制器不会被设置).
警告2请务必使用最新版本的uiIf(最新标签v0.3.2中提供的版本已过期).在某些情况下,旧的错误导致TypeError.
必须在AngularJS之前包含警告3 jQuery(在index.html中); 否则你会收到一个TypeError声明Object [object Object] has …
angularjs ×7
javascript ×5
html5 ×2
angular-ui ×1
appearance ×1
assign ×1
controller ×1
css ×1
css-position ×1
dynamic ×1
html ×1
include ×1
navigation ×1
repeater ×1
sublimetext2 ×1