小编jac*_*cob的帖子

angular.service vs angular.factory

我已经看到angular.factory()angular.service()用于声明服务; 但是,我在官方文档中找不到 angular.service任何地方.

这两种方法有什么区别?应该用什么(假设他们做不同的事情)?

angularjs angular-services

1061
推荐指数
8
解决办法
33万
查看次数

ng-include的正确语法是什么?

我正在尝试在其中包含一个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)

javascript html5 repeater include angularjs

397
推荐指数
6
解决办法
31万
查看次数

Sublime Text 2:禁用文档预览

我尝试搜索这个,但SublimeText中有一个不同的功能,人们称之为"预览",所以我找不到任何相关的信息.

如何在文档打开时禁用SublimeText2中显示的预览导航图像?此外,这个功能叫什么?

在此输入图像描述

navigation sublimetext2

48
推荐指数
2
解决办法
1万
查看次数

AngularJS DOM选择器

我有一些使用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犯罪.

javascript jquery-selectors angularjs angularjs-directive

35
推荐指数
2
解决办法
9万
查看次数

AngularJS设置全局ngModelOptions

更新ngModel(以及随后的验证)的默认行为正在改变 ; 我想把它改成模糊.该文档仅解释如何做到这一点上通过的情况下,逐案:<ANY ng-model-options="{ updateOn: 'blur' }"></ANY>.我甚至通过源代码查看,但不知何故找不到ngModelOptionsng-model-options(尽管文档中都出现了这些内容,这是从源代码中删除的).

configuration angularjs angular-ngmodel

26
推荐指数
4
解决办法
9087
查看次数

AngularJS:从ng-repeat动态分配控制器

我正在尝试为包含的模板动态分配控制器,如下所示:

<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}}"在我的模板中设置(认为​​它必须已经解决),但没有骰子.

javascript controller dynamic assign angularjs

22
推荐指数
4
解决办法
2万
查看次数

Google Maps api v3工具:视觉扭曲?

我只是注意到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被应用到地图的容器或直接应用到它的工具.

Google Maps Api v3:地图界面工具

这是确切的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)

css appearance css-position google-maps-api-3

22
推荐指数
2
解决办法
7839
查看次数

HTML中的自由裁量换行?

我正在寻找一种方法来指定一条线如果它不能以类似于&shy;(软/自由连字符)的方式放在它的线上而应该中断,但是有一个空格.我尝试使用谷歌搜索,但没有得到很多相关的点击(尽管指定"html",主要是针对InDesign),我得到的是一些人说他们不知道的方式.

防爆.

你好,我的名字
是foo.

你好,
我的名字是foo.
但如果空间可用:
你好,我的名字是foo.

对于特异性,我不是故意的white-space: normal/nowrap/pre/…,我不想强​​迫休息<br />.

我正在使用AngularJS,所以大多数都是通过JavaScript处理的,所以如果有一个简单/有效/聪明的方法来做到这一点,我会对它持开放态度.

html control-characters

16
推荐指数
3
解决办法
1万
查看次数

在Directive运行之前,AngularJS通过AJAX检索数据

我正在使用AngularUI的uiMap指令来实例化谷歌地图.uiMap指令适用于硬编码数据({mapOptions}[myMarkers]); 但是当我通过$http.get()(在AJAX调用完成之前指令触发)检索此数据时遇到了麻烦.

最初我在我的GoogleMaps控制器中执行GET ,但是当我意识到事情发生的时候,我把GET转移到了uiMap指令中.我有两个问题:

  1. 我认为这不是正确的方法.
  2. GET还检索数据 [myMarkers]
    • 创建标记的函数/指令无处不在,因为它负责创建所有叠加层

所以我的问题是,是否在应用程序的其他地方我可以在指令运行之前检索数据(并将其应用于范围)?

我读了$ q,这听起来像我想要的,但我不确定我是否可以在我的控制器中而不是在指令中做到(也不确定$q.defer.resolve()有什么不同$http.success()).

编辑我使用的大部分代码都是从AngularUI的doc中复制/粘贴,但这里有一个插件:http://plnkr.co/edit/t2Nq57

根据Andy的回答,我使用了uiMap和uiIf的组合:

<!-- 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 …

javascript html5 angularjs angular-ui

16
推荐指数
2
解决办法
3万
查看次数

AngularJS中指令函数的执行顺序

指令函数的执行顺序是什么?该文件似乎并没有解决这个问题.

防爆

  1. template/templateUrl(已评估)
  2. controllerFn
  3. compileFn
  4. linkFn

回答

从以下答案:http://plnkr.co/edit/79iyKSbfxgkzk2Pivuak(plunker显示嵌套和兄弟指令)

  1. 模板被解析
  2. compile() (在编译中对模板所做的更改会扩散到链接函数)
  3. controller()
  4. preLink()
  5. postLink()

javascript angularjs angularjs-directive

15
推荐指数
2
解决办法
2万
查看次数