小编PSL*_*PSL的帖子

使用Ui-Router的ui-sref来设置查询参数

我有以下链接.

<a ui-sref="...">Clicking this adds ?test=true to the query params.</a>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用ui-sref属性来更改查询参数而无需重新加载页面或指向另一个函数?

routing angularjs angular-ui-router

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

如何使用具有对象相等性的$ watchGroup或深入观察组中的属性?

我想要一个指令在三个范围变量发生变化时重新呈现HTML.前两个只是整数,第三个是数组.

我们$watchGroup看几个变量,我们$watchobjectEquality作为第三个参数,我们$watchCollection这就好比$watch,但objectEquality暗示.

有没有办法写一个类似这个的$ watch?

$scope.$watchGroup(['number1', 'number2', 'myArray'], callback, true); // true for objectEquality
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-scope

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

从Javascript对象创建HTML标记

更改此对象的最佳方法是什么

{
    src: 'img.jpg',
    title: 'foo'
}
Run Code Online (Sandbox Code Playgroud)

为有效的HTML标记字符串这样

<img src="img.jpg" title="foo" />
Run Code Online (Sandbox Code Playgroud)

解决方案1

使用jQuery这很容易; 但很复杂:

$('<img/>').attr(obj).wrap('<div/>').parent().html();
Run Code Online (Sandbox Code Playgroud)

有更好的想法吗?

html javascript jquery dom

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

无法设置ng-options的选定值

我正在尝试填充下拉选择选项列表,并使用ng-model和ng-options设置默认选定值.

我在视图中有以下代码:

<select ng-model="thisTour.site" ng-options="site.name for site in siteList"></select>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

    $scope.siteList = [
        { id: 1, name: 'cycling'},
        { id: 2, name: 'walking'},
        { id: 3, name: 'holidays'}
    ]

    $scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)

该列表正在填充来自siteList对象的正确3个选项,但是默认情况下并不是按照我的预期选择行走?为什么不?

现在,当我改变这个:

$scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)

对此:

$scope.thisTour.site = $scope.siteList[1];
Run Code Online (Sandbox Code Playgroud)

现在它有效.为什么?这不是一回事吗?

angularjs angularjs-ng-options

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

如何为AngularJS $ q和$ http添加Typescript类型?

在我的代码中我有这个:

/// <reference path="../../../../scripts/typings/angularjs/angular.d.ts" />

angular.module('question')
    .controller('QuestionHomeController', [
        '$http',
        'enumService',
        '$q',
        '$rootScope',
        '$scope',
        '$state',
        questionHomeController]);

function questionHomeController(
    $http,
    enumService,
    $q,
    $rootScope,
    $scope,
    $state
    ) {
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何为$ http和$ q添加Typescript类型?我已经引用了AngularJS类型定义文件,但是这些类型仍然没有显示出来

javascript angularjs typescript

14
推荐指数
1
解决办法
9501
查看次数

HTML引导弹出功能

我想知道bootstrap给出的popover我有以下的东西 -

<a href="javascript: void(0)" id="member1" rel="popover" data-content="Co-President sample@uic.edu" data-original-title="Liz Sample"><img src="femaleprofilepicture2.jpg" class="img-polaroid"></a>
Run Code Online (Sandbox Code Playgroud)

截至目前,当我点击图片时,我同时获得了联合总裁和sample@uic.edu.如何让它们出现在不同的行上.

谢谢

html javascript jquery twitter-bootstrap

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

AngularJS - 访问子指令控制器

如何访问子指令控制器?具体来说,我需要访问父指令中存在的所有ngModelController.例:

<parent-directive>
  <input type="text" ng-model="model1"/>
  <input type="text" ng-model="model2"/>
</parent-directive>
Run Code Online (Sandbox Code Playgroud)

那么,"parentDirective"是否有办法访问"model1"和"model2"的ngModelControllers?

javascript angularjs angularjs-directive angularjs-scope angularjs-ng-model

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

Karma + angular-mocks TypeError:'undefined'不是对象(评估'angular.mock = {}')

我正在尝试使用Karma + Jasmine编写单元测试,但遇到角度模拟错误.运行grunt测试时出现以下错误:

PhantomJS 1.9.8(Mac OS X)错误TypeError:'undefined'不是/ Users/danielbogart/documents/coding/work/AexNav/bower_components/angular-mocks /中的对象(评估'angular.mock = {}') angular-> mocks.js:17 Chrome 39.0.2171(Mac OS X 10.9.4)错误未捕获的TypeError:无法在/ Users/danielbogart/Documents/coding/work/AexNav/bower_components/angular-中设置undefined属性'mock'嘲笑/ angular-> mocks.js:17

Gruntfile karma配置:

    karma: {
        options: {
            frameworks: ['jasmine'],
            files: [ 
                'dom_munger.data.appjs',
                'tests/spec/*.js',
                'bower_components/angular-mocks/angular-mocks.js'
            ],
            logLevel: 'ERROR',
            reporters: ['mocha'],
            autoWatch: false, //watching is handled by grunt-contrib-watch
            singleRun: true
        },
        all_tests: {
            browsers: ['PhantomJS', 'Chrome']
        },
        during_watch: {
            browsers: ['PhantomJS']
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript unit-testing jasmine angularjs karma-runner

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

在AngularJS中为每个第n个元素自定义ng-repeat

我正在尝试自定义一个向每个第4个元素ng-repeat添加类似br标签的东西.我试过四处寻找,但似乎找不到可靠的答案.是否有一种简单的方法可以为Angular添加这样的条件?我ng-repeat只是添加一些spans内容,但我需要每4个元素开始一个新行.

即我想要以下内容

item1 item2 item3 item4 item5 item6 item7 item8

但是现在它就是这样做的

item1 item2 item3 item4 item5 item6 item7 item8

如果有任何关于ng-repeat定制的好文章(对于新手)我会感谢链接以及我发现的所有内容都太难理解了.

HTML

  <div class="section">
    <div ng-repeat="items in MyList">
      <img ng-click="AddPoint($index)" src={{items.image}} />
      <span>{{items.currentPoint}}/{{items.endPoint}}</span>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

javascript css css3 angularjs

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

AngularJS Provider依赖注入 - 在提供程序中使用$ log

问题很简单:使用AngularJS我们不能将$ log注入提供者.

angular.module('my.module', [])
    .provider('myProvider', function ($log, $logProvider) {
        $log.log("Aloha!"); // Unknown provider: $log
        $logProvider.log("Hi!"); // undefined is not a function: $logProvider has no `log` method 
        this.$get = function($log) {
            $log.log("Hello!"); // Everything is ok here
        };
    });
Run Code Online (Sandbox Code Playgroud)

是的,我们可以注入$logProvider,但它没有需要的方法(.log,.error等).

是的,我们可以注入$logProvider,然后手动调用$logProvider.$get(),但我们将无法使用装饰器的其他逻辑.

是的,我们可以编写自己的logProvider,但我想知道为什么Angular不支持这个开箱即用的功能.

那么,我们不能在提供者中以"真正的角度方式"使用控制台吗?这个事实很奇怪.而且伤心.

问题:我如何在提供商中以"真正的角度方式"使用控制台?

我无法找到这个问题的任何解释.Angular Developers Guide说我们需要在每个地方使用$ log而不是控制台.

javascript dependency-injection angularjs

12
推荐指数
1
解决办法
5379
查看次数