javascript

java

python

c#

android

c++

node.js

php

reactjs

jquery

html

css

ios

.net

git

ruby-on-rails

sql

c

string

ruby

javascript-jQuery find()方法在AngularJS Directi中不起作用

我在用angularjs指令查找带有注入的angular元素的子DOM元素时遇到麻烦。

例如,我有一个这样的指令:

myApp.directive('test', function () {
    return {
        restrict: "A",
        link: function (scope, elm, attr) {
            var look = elm.find('#findme');
             elm.addClass("addedClass");
            console.log(look);
        }
    };
});

和HTML,例如:

<div ng-app="myApp">
    <div test>TEST Div
        <div id="findme"></div>
    </div>
</div>

我可以通过添加一个类来访问该元素。但是,尝试访问子元素会在var外观中产生一个空数组。

JSFiddle演示在这里。

为什么如此琐碎的事情无法正常工作?

trans by 2020-07-09T23:36:31Z

外部单击时隐藏AngularJS下拉指令隐藏

我正在尝试使用复选框和过滤器选项创建多选下拉列表。 我试图隐藏列表,但单击外部却不知道如何操作。 感谢你的帮助。

[HTTP://漂亮女客人.co/edit/台湾0和LZ68O8UE WJ7u Z78从]

trans by 2020-07-09T19:50:44Z

coffeescript-如何查看在AngularJS / UI-Router中配置了哪些状态?

有没有办法查看component1设置的所有状态?

在这种情况下,我希望我的状态分配分布在许多文件中。 我想在其他文件中检查component1component2上的已建状态。

例如:

# component1.coffee
angular.module('zoo').config ($stateProvider) ->
  $stateProvider.state 'component1',
    url: '/component1'
    template: _template
    controller: 'Component1Ctrl'

# component2.coffee
angular.module('zoo').config ($stateProvider) ->
  $stateProvider.state 'component2',
    url: '/component2'
    template: _template
    controller: 'Component2Ctrl'

# componentNavigation.coffee
angular.module('zoo').run ($state) ->
  console.log 'All configured states:', $state.configuredStates # doesn't exist.

是否有一些东西可以列出两个州component1component2

trans by 2020-07-08T14:10:11Z

使用TypeScript和$ inject机制定义AngularJS指令

最近,我开始重构与TypeScript一起工作的Angular项目之一。 由于使用了$inject属性,使用TypeScript类定义控制器非常方便,并且可以与最小的JavaScript文件一起很好地工作。 您将获得非常干净的代码,而无需从类定义中拆分Angular依赖项:

 module app {
  'use strict';
  export class AppCtrl {
    static $inject: Array < string > = ['$scope'];
    constructor(private $scope) {
      ...
    }
  }

  angular.module('myApp', [])
    .controller('AppCtrl', AppCtrl);
}

现在,我正在寻找解决方案以处理指令定义的类似情况。 我发现了将指令定义为函数的好习惯:

module directives {

  export function myDirective(toaster): ng.IDirective {
    return {
      restrict: 'A',
      require: ['ngModel'],
      templateUrl: 'myDirective.html',
      replace: true,
      link: (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ctrls) => 
        //use of $location service
        ...
      }
    };
  }


  angular.module('directives', [])
    .directive('myDirective', ['toaster', myDirective]);
}

在这种情况下,我不得不在指令定义中定义Angular依赖关系,如果定义和TypeScript类位于不同的文件中,那么它很容易出错。 用typescript和$inject机制定义指令的最佳方法是什么,我在寻找一种实现TypeScript IDirectiveFactory接口的好方法,但是我对找到的解决方案不满意。

trans by 2020-07-08T02:31:02Z

javascript-存储应用程序配置设置

在AngularJS中存储应用程序配置设置的最佳位置是什么? 可能是诸如应用程序常量,查找等之类的东西,可以在控制器,服务或工厂中使用。 我可以创建一个单独的服务来存储和检索这些东西,但是我想知道是否还有另一个合适的位置来存储和检索这些东西。

trans by 2020-07-08T00:32:57Z

javascript-有没有一种简单的方法可以使用按钮来导航页面,就像angularjs中的链接一样

在angularjs中,我想像这样使用location.href,但是我仍然需要寻找按钮。

<button href="#/new-page.html">New Page<button>

正如location.href(链接)所做的那样

<a href="#/new-page.html">New Page</a>

有没有比这更简单的方法?

<button ng-click="newPage()">New Page<button>
$scope.newPage = function (){
    location.href = '#/new-page.html';
};

注意:从根本上说,当我习惯于location.href进行导航时,会刷新整个页面,并且导航不受angularjs的控制。 如果我不使用链接,如何在javascript代码中导航页面?

我是否需要创建一个自定义指令来实现?

trans by 2020-07-07T22:03:48Z

javascript-AngularJS:选择非两向绑定到mod

我正在使用选择显示客户名称。 用户应该能够选择现有的客户端,然后将更新范围属性:

控制者

初始化“首选”。

if($scope.clients.length > 0) $scope.existingClient = $scope.clients[0];

视图

<select
    id='nm-existing-client-name'
    class='form-control  input-lg'
    ng-model='existingClient'
    ng-options="client.name for client in clients">
</select>

选择菜单更改时,范围属性ng-change不会更改。 如果没有初始化任何值(删除了上面的控制器行),则2956298027528628619009的值将保持不确定。

值更改时,将触发附加2956298027528628619008,但模型本身不会更新为新值。

我正在使用AngularJS v1.2.0-rc.3。

trans by 2020-07-07T18:33:45Z

angularjs-阻止Angular动画在ng-show / ng-hide上发生

在我的AngularJS应用程序中,我正在使用fontawesome作为加载微调器:

<i class="fa fa-spin fa-spinner" ng-show="loading"></i>

我还将AngularToaster用于依赖ngAnimate的通知消息。 当我在AngularJS应用程序中包含ngAnimate时,它会以一种奇怪的方式给它们加载动画,从而使我的加载微调器混乱。 我想阻止这种情况的发生,但无法找到一种方法来仅禁用这些加载器上的动画(它也很臭,必须更新我在应用程序中拥有的每个加载器)。

这是一个显示我确切问题的小伙子。

[HTTP://漂亮女客人.co/edit/万v Y5ISP u St52no IA2还5啊]

trans by 2020-07-07T10:00:06Z

javascript-Angular.js:获取元素

我是angularjs的新手,我知道$scope表示控制器和视图之间的连接,但是除了寻找class="ng-scope"来获取scope元素之外,还有什么办法,我的意思是:

function someControllerFunc($scope){
       $scope.element;
}

我知道可以将同一控制器分配给多个作用域,所以也许是不可能的。

trans by 2020-07-06T05:29:32Z

angularjs-空的ng-src不会更新imag

我正在使用ng-src指令,以避免浏览器在Angular评估表达式之前请求图像。

如果表达式“ image”更改,则ng-src={{image}}将更新图像的src属性。我误解了,如果表达式(“ myImage.png”)为空(“”),为什么ng-src指令不更新图像的路径。

当表达式为空时,ng-src属性为空,但src属性仍然是最后一个已知的src。 因此它不会更新图像。 为什么不更新src属性(将其更新为空的src),以使图像“消失”。

这是一个矮人

谢谢

trans by 2020-07-06T02:43:34Z

javascript-用于创建网格的angular.js ng-repeat

我正在尝试使用bootstrap 3和angularjs创建一个网格。

我要创建的网格就是这个,使用ng-repeat重复进行。

<div class="row">
 <div class="col-md-4">item</div>
 <div class="col-md-4">item</div>
 <div class="col-md-4">item</div>
</div>

我尝试使用ng-if($index % 3 == 0)来添加行,但这似乎行不通。 任何建议都很好!

谢谢!

编辑:这是我最终使用的代码:

<div ng-repeat="item in items">
  <div ng-class="row|($index % 3 == 0)">
    <ng-include class="col-sm-4" src="'views/items/item'"></ng-include> 
  </div>
</div>
trans by 2020-07-05T18:37:37Z

javascript-AngularJS应用中的$ timeout未定义错误

我有以下代码:

app.factory('Position', ['$timeout', function() {

    var position = {
        latitude: 44,
        longitude: 26
    };

    console.log("Timeout started");

    $timeout(function() {
        position.latitude += 15;
        position.longitude += 15;
    }, 2000);

    return position;
}]);

我在Javascript控制台中得到$timeout not defined。 我没有正确注入服务的依赖项吗?

trans by 2020-07-05T17:42:10Z

javascript-如何使用$ q从AngularJS服务返回已解决的承诺?

我的服务是:

myApp.service('userService', [
  '$http', '$q', '$rootScope', '$location', function($http, $q, $rootScope, $location) {
    var deferred;
    deferred = $q.defer();
    this.initialized = deferred.promise;
    this.user = {
      access: false
    };
    this.isAuthenticated = function() {
      this.user = {
        first_name: 'First',
        last_name: 'Last',
        email: 'email@address.com',
        access: 'institution'
      };
      return deferred.resolve();
    };
  }
]);

我在then文件中通过以下方式调用此命令:

myApp.run([
  '$rootScope', 'userService', function($rootScope, userService) {
    return userService.isAuthenticated().then(function(response) {
      if (response.data.user) {
        return $rootScope.$broadcast('login', response.data);
      } else {
        return userService.logout();
      }
    });
  }
]);

但是,它抱怨then不是函数。 我不退还已解决的承诺吗?

trans by 2020-07-04T16:33:19Z

如何在Angular中编写去抖动服务

下划线库提供了一个反跳功能,该功能可防止在设定的时间内多次调用该功能。 他们的版本使用setTimeout。

我们如何用纯AngularJS代码做到这一点?

此外,我们可以利用$ q样式的承诺在反跳周期之后从调用的函数中检索返回值吗?

trans by 2020-07-04T12:33:46Z

javascript-使用Angular清除文本输入onclick

如何使用angularJS在单击按钮时清除文本输入?

Search input

X是一个单独的链接,我想在该链接上触发一个函数。

的HTML

<input type="text" class="form-control" data-ng-model="searchAll">
<a class="clear" data-ng-click="clearSearch()">X</a>
trans by 2020-07-04T07:49:12Z

AngularJS withCredentials

我一直在研究AngularJS项目,该项目必须将AJAX调用发送到restfull Web服务。 此Web服务在另一个域上,因此我必须在服务器上启用cors。 我通过设置这些标题来做到这一点:

cresp.getHttpHeaders().putSingle("Access-Control-Allow-Origin", "http://localhost:8000");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Credentials", "true");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");

我可以将AngularJS的AJAX请求发送到后端,但是当我尝试获取会话的属性时遇到了问题。 我相信这是因为sessionid cookie不会发送到后端。

我可以通过将withCredentials设置为true来解决此问题。

$("#login").click(function() {
    $.ajax({
        url: "http://localhost:8080/api/login",
        data : '{"identifier" : "admin", "password" : "admin"}',
        contentType : 'application/json',
        type : 'POST',
        xhrFields: {
            withCredentials: true
        },
        success: function(data) {
            console.log(data);
        },
        error: function(data) {
            console.log(data);
        }
    })
});

$("#check").click(function() {
    $.ajax({
        url: "http://localhost:8080/api/ping",
        method: "GET",
        xhrFields: {
            withCredentials: true
        },
        success: function(data) {
            console.log(data);
        }
    })
});

我面临的问题是我无法通过$ http服务在AngularJS中使用它。 我这样尝试过:

$http.post("http://localhost:8080/api/login", $scope.credentials, {withCredentials : true}).
            success(function(data) {
                $location.path('/');
                console.log(data);
            }).
            error(function(data, error) {
                console.log(error);
            });

谁能告诉我我在做什么错?

trans by 2020-07-03T19:47:27Z

angularjs-Angular JS可调整大小的div Directi

我的网站将有多个部分,每个部分我都打算重新调整大小。 为此,我制定了“可调整大小”的指令,例如:

<div class="workspace" resize="full" ng-style="resizeStyle()">
<div class="leftcol" resize="left" ng-style="resizeStyle()">

使用类似如下的指令:

lwpApp.directive('resize', function ($window) {
    return {
        scope: {},

        link: function (scope, element, attrs) {
            scope.getWinDim = function () {
                return {
                    'height': window.height(),
                    'width': window.width()
                };
            };

            // Get window dimensions when they change and return new element dimensions
            // based on attribute
            scope.$watch(scope.getWinDim, function (newValue, oldValue) {
                scope.resizeStyle = function () {
                    switch (attrs.resize) {
                    case 'full':
                        return {
                            'height': newValue.height,
                            'width': (newValue.width - dashboardwidth)
                        };

                    case 'left':
                        return {
                            'height': newValue.height,
                            'width': (newValue.width - dashboardwidth - rightcolwidth)
                        };

                    etc...
                };
            }, true);

            //apply size change on window resize
            window.bind('resize', function () {
                scope.$apply(scope.resizeStyle);
            });
        }
    };
});

如您所见,这只会在窗口调整大小时调整每个div的大小,并且每个指令都有一个隔离范围。 这对于它的构建工作正常,但最终我想通过可拖动的栏使div的子集可调整大小。 例如

div1     div2
----------------
|     ||       |
|     ||       |
|     ||       |
|     ||       |
----------------
    draggable bar in middle

在可拖动栏的移动(沿水平方向)上,我大概需要通过父控制器(?)的作用域来访问div1,div2的宽度。 我的问题是:

  1. 这是使角度可调整div的“正确”方法吗? 特别是一个div的大小何时影响另一个?

  2. 我个人认为(1)的答案是“不,我没有正确执行,因为当每个指令都有隔离范围时,我无法在它们之间进行通信。” 如果是这样,我该如何考虑div之间的窗口大小和可拖动大小调整?

trans by 2020-07-03T15:55:28Z

侦听器-reloadOnSearch为false时,$ location.search上的AngularJs $ watch无法正常工作

我的route routeProvider已将reloadOnSearch设置为false:

 $routeProvider
     .when(
        "/film/list",
         {
          templateUrl: '/film/list.html', 
          controller: FilmListController,
          reloadOnSearch: false
          } 
          ....

  )

我这样做是因为我不希望在查询字符串更改后重新加载整个控制器,但我仍然使用它,并且URL看起来像这样:film/list?sort=isbn&order=asc&offset=0。现在每当查询字符串更改时,我都想从控制器中调用一个函数。 所以我试图在控制器中设置一个$ watch:

$scope.location = $location;
$scope.$watch( 'location.search()', function( search) {
        $scope.list();
 });

但这是行不通的。 如果我将$ watch设置为监视查询字符串的各个参数的更改,则它将起作用。 但是我不想为查询字符串的每个参数设置$ watch。 我现在使用的解决方案是这样的:

$scope.location = $location;
$scope.$watch( 'location.url()', function( url ) {
    if($location.path() == '/film/list')
        $scope.list();
 });

因此,我没有关注搜索,而是关注整个URL,然后检查该路径是否是我在routeProvider中设置的有条件调用该函数的路径。 我对此解决方案不满意的是,我必须明确键入要匹配的$ location.path的值。

谁能提出一个更好的解决方案,也许可以解释一下为什么$ watch对于$ location.search()不起作用?

trans by 2020-07-03T12:53:55Z

javascript-错误:[$ compile:nonassign]与指令“ myFacebook”一起使用的表达式“ undefined”是非分配的

我在angularjs中编写指令,并遇到上述错误。 我正在使用一本书中的代码。

.directive('myFacebook', [function(){
return {
    link: function(scope,element,attributes) {
        (function(d) {
                var js, id = 'facebook-jssdk',
                    ref = d.getElementsByTagName('script')[0];
                if (d.getElementById(id)) {
                    return;

                }
                js = d.createElement('script');
                js.id = id;
                js.async = true;
                js.src = "//connect.facebook.net/en_US/all.js";
                ref.parentNode.insertBefore(js, ref);
            }(document));
            // Initialize FB
            window.fbAsyncInit = function() {
                FB.init({

                    appId: 'xxxx', //birthday reminder
                    status: true, // check login status
                    cookie: true, // enable cookies to access the session
                    xfbml: false // parse XFBML
                });
                //Check FB Status
                FB.getLoginStatus(function(response) {
                     xxxx
                });
            };
        scope.username='';
    },
    scope: {
            permissions: '@',
            myFriends: '=friends'
        },
    controller: function($scope) {
        $scope.loadFriends = function() {
            FB.api('/me/friends?fields=birthday,name,picture', function(response) {
                    $scope.$apply(function() {
                        $scope.myFriends = response.data;
                    });
                });
        }
    },

    template:'Welcome {{username}}'
   }}])

我在错误

 $scope.$apply(function() {
            $scope.myFriends = response.data;
 });

HTML代码

<div my-facebook></div>
<h1> My Friend's Birthday Reminder</h1>
<div ng-repeat="friend in myFriends">
     {{friend.name}}
</div>
trans by 2020-07-03T12:42:24Z

angularjs-orderBy由两个字段(一个反向)

我想按状态(在线优先,离线后继)和字母顺序订购朋友列表。 我设法得到的是:

  • 在线首创/字母顺序颠倒
  • 或离线优先/按字母顺序排列

这是暴露我的问题的朋克

trans by 2020-07-03T07:25:47Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共55页