小编Rob*_*ian的帖子

如何/何时使用ng-click来呼叫路由?

假设您正在使用路线:

// bootstrap
myApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {

    $routeProvider.when('/home', {
        templateUrl: 'partials/home.html',
        controller: 'HomeCtrl'
    });
    $routeProvider.when('/about', {
        templateUrl: 'partials/about.html',
        controller: 'AboutCtrl'
    });
...
Run Code Online (Sandbox Code Playgroud)

在您的html中,您希望在单击按钮时导航到about页面.一种方法是

<a href="#/about">
Run Code Online (Sandbox Code Playgroud)

...但似乎ng-click在这里也很有用.

  1. 这个假设是否正确?使用ng-click而不是锚点?
  2. 如果是这样,那将如何运作?IE:

<div ng-click="/about">

routes angularjs angularjs-routing angularjs-ng-click angularjs-ng-route

243
推荐指数
3
解决办法
36万
查看次数

207
推荐指数
3
解决办法
23万
查看次数

ui-bootstrap-tpls.min.js和ui-bootstrap.min.js有什么区别?

在cdnjs 的Angular-UI-Bootstrap页面上说:

Twitter的Bootstrap的Native AngularJS(Angular)指令.占用空间小(5 kB gzipped!),无需第三方JavaScript依赖(jQuery,Bootstrap JavaScript)!

......并且可以选择

//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.6.0/ui-bootstrap-tpls.min.js
Run Code Online (Sandbox Code Playgroud)

//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.6.0/ui-bootstrap.min.js
Run Code Online (Sandbox Code Playgroud)

差异这些显示出微妙的差异,我似乎无法找到任何文件......

简而言之,除非您要创建自定义模板,否则请使用tpls.

它在此处记录:github.com/angular-ui/bootstrap/tree/gh-pages#build-files(也从主页链接).简而言之,-tpls版本捆绑了默认的Bootstrap模板.在任何情况下,您应该只包括列出的文件之一. - 谢谢pkozlowski.opensource

angularjs angular-ui angular-ui-bootstrap

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

如何创建一个与Bootstrap 3配合良好的粘性页脚

无论有没有顶级导航,站点都有一个粘性页脚是很常见的.Bootstrap有一个可以轻松创建固定页脚的工具,但没有这样的工具来创建粘性页脚 - 这有很大的不同.

谷歌搜索这个问题将揭示数百甚至数千名开发人员有相同的问题,但没有好的答案.

具有讽刺意味的是,Bootstrap文档页面本身具有粘性页脚以及引导程序样式和固定的顶部导航栏.这是所有自定义css,但不是框架的一部分.所以一个显而易见的路线是采取和重构他们的自定义样式,因为它显然在Bootstrap框架中运行良好,但这似乎比它应该更痛苦.

请参阅此plunkr以获取带有Bootstrap顶部导航栏的示例页面,以及不受欢迎的非粘性页脚.

问题:

(感谢Softlayer - 用于图形)

一个不粘的页脚非常难看

期望的解决方案:

粘性页脚始终位于底部

当然,页脚应该响应和跨浏览器友好...

css sticky-footer twitter-bootstrap twitter-bootstrap-3

77
推荐指数
5
解决办法
23万
查看次数

如何将AngularJS指令设置为stopPropagation?

我试图"停止传播"以防止在点击li中的元素(链接)时关闭Twitter Bootstrap导航栏下拉列表.使用这种方法似乎是常见的解决方案.

在Angular中,似乎是一个指令就是这样做的地方?所以我有:

// do not close dropdown on click
directives.directive('stopPropagation', function () {
    return {
        link:function (elm) {            
            $(elm).click(function (event) {                
                event.stopPropagation();
            });
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

...但该方法不属于元素:

TypeError: Object [object Object] has no method 'stopPropagation'
Run Code Online (Sandbox Code Playgroud)

我指的是指令

<li ng-repeat="foo in bar">
  <div>
    {{foo.text}}<a stop-propagation ng-click="doThing($index)">clickme</a>
  </div>
</li>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

javascript jquery stoppropagation angularjs

75
推荐指数
3
解决办法
6万
查看次数

AngularJS HTML5模式 - 直接链接如何在没有服务器特定更改的情况下工作?

注意:这个问题也可以是:

如何在Java中支持hashbang-less客户端mvc框架的书签.

我过渡使用的角度应用hashtags到一个是html5mode.我成功了

$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)

来自着陆页(index.html)的所有链接都可以正常工作.

问题是,如果直接引用部分URL,我自然会得到404,因为服务器端点定义没有耦合到客户端定义的路由.

因此,如果没有HTML5,我们会得到非SEO友好的hashbang,但是有了它,我们就不能为登陆页面(bootstraps angular的页面)以外的任何内容添加书签.

如果首先请求默认登录页面(index.html),为什么它可以工作,即htpp://mydomain.com/:

  1. 浏览器从服务器请求index.html
  2. 服务器返回index.html,浏览器加载角度框架
  3. URL更改将发送到客户端路由器并加载正确的部分.

如果直接从浏览器请求(即)http://mydomain.com/foo,为什么它不起作用:

  1. 浏览器从服务器请求mydomain/foo.
  2. 资源不存在
  3. 服务器返回404

这个故事遗漏了一些东西,我只是不知道是什么.以下是我能看到的唯一两个答案......

  • 这是设计的. 这是它应该如何工作?用户必须始终登陆客户端MVC框架的引导页面(通常是index.html),然后从那里导航.这不是理想的,因为状态无法保存,无法书签......更不用说抓取了.
  • 服务器方案. 这是否与服务器端技巧有关?例如,在所有请求上,返回index.html并立即使用其他上下文调用路由器.如果是这样,这违背了AngularJS完全是客户端并且看起来像黑客的目标.

java web.xml angularjs single-page-application

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

AngularJS - 动态创建指定指令的元素

我有这样的设置:

  • 控制器c广播事件e
  • Directive 通过append d监听ee写入DOM,并在此过程中创建指定指令的新元素d2.

IE: element.append('<directiveTwo ...>')

  • twoAngular永远不会调用指令
  • 当我检查DOM(和调试)时,我看到Controller c和指令d正在完成他们的工作,我有新的directiveTwo元素.

缺什么?2在动态创建这些元素之后需要做些什么才能触发指令调用?

angularjs angularjs-directive

41
推荐指数
1
解决办法
8万
查看次数

Angular JS - 使控制器和视图可以全局访问服务

假设我们有以下服务:

myApp.factory('FooService', function () { ...
Run Code Online (Sandbox Code Playgroud)

然后,从控制器,我会说:

myApp.controller('FooCtrl', ['$scope', 'FooService', function ($scope, FooService) { ...
Run Code Online (Sandbox Code Playgroud)

这个由两部分组成的问题是:

  1. 全局可访问性:如果我有100个控制器并且都需要访问该服务,我不想明确地注入它100次. 如何使全球服务可用? 我现在唯一能想到的就是将它从根范围内包装起来,这会破坏目的.
  2. 视图中的辅助功能:如何从视图中访问服务? 这篇文章建议从控制器中包装服务.如果我要达到那个长度,似乎我应该只在根范围上实现功能?

javascript angularjs

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

AngularJS element.innerHTML未在指令中定义

比方说我有:

directives.directive('foo', function () {
    return {
        restrict:'A',
        scope: true,
        link:function (scope, element, attr) {

            console.log('innerHTML is ' + element.innerHTML);

            scope.$watch('update', function (newValue) {
                console.log('innerHTML is... ' + element.innerHTML);
            });

        }
    }
});
Run Code Online (Sandbox Code Playgroud)

...然后innerHTML未定义.我想这是由于Angular处理DOM的方式.获取innerHTML的正确方法是什么?

innerhtml angularjs angularjs-directive

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

NodeJS - 如何在不缓冲的情况下流请求主体

在下面的代码中,我无法弄清楚为什么req.pipe(res)不起作用,但是也没有抛出错误.预感告诉我这是由于nodejs的异步行为,但这是一个非常简单的情况,没有回调.

我错过了什么?

http.createServer(function (req, res) {

  res.writeHead(200, { 'Content-Type': 'text/plain' });

  res.write('Echo service: \nUrl:  ' + req.url);
  res.write('\nHeaders:\n' + JSON.stringify(req.headers, true, 2));

  res.write('\nBody:\n'); 

  req.pipe(res); // does not work

  res.end();

}).listen(8000);
Run Code Online (Sandbox Code Playgroud)

这是卷曲:

?  ldap-auth-gateway git:(master) ? curl -v -X POST --data "test.payload" --header "Cookie:  token=12345678" --header "Content-Type:text/plain" localhost:9002 
Run Code Online (Sandbox Code Playgroud)

这是调试输出(请参阅上传的主体):

  About to connect() to localhost port 9002 (#0)
  Trying 127.0.0.1...
    connected
    Connected to localhost (127.0.0.1) port 9002 (#0)
  POST / HTTP/1.1
  User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5
  Host: localhost:9002
  Accept: */*
  Cookie: …
Run Code Online (Sandbox Code Playgroud)

http pipe stream node.js epipe

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