标签: angularjs

如何在控制器中使用过滤器?

我编写了一个过滤函数,它将根据您传递的参数返回数据.我想在我的控制器中使用相同的功能.是否可以在控制器中重用过滤器功能?

这是我到目前为止所尝试的:

function myCtrl($scope,filter1)
{ 
    // i simply used the filter function name, it is not working.
}
Run Code Online (Sandbox Code Playgroud)

angularjs angular-filters ng-controller

634
推荐指数
10
解决办法
52万
查看次数

对服务与工厂感到困惑

据我了解,当在工厂内部时,我返回一个被注入控制器的对象.在服务内部时,我正在处理使用的对象this而不返回任何内容.

我假设服务总是单例,并且每个控制器都会注入一个新的工厂对象.然而,事实证明,工厂对象也是单身人士?

用于演示的示例代码:

var factories = angular.module('app.factories', []);
var app = angular.module('app',  ['ngResource', 'app.factories']);

factories.factory('User', function () {
  return {
    first: 'John',
    last: 'Doe'
  };
});

app.controller('ACtrl', function($scope, User) {
  $scope.user = User;
});

app.controller('BCtrl', function($scope, User) {
  $scope.user = User;
});
Run Code Online (Sandbox Code Playgroud)

当改变user.firstACtrl事实证明,user.firstBCtrl也发生了变化,比如User是一个单身?

我的假设是在一个带有工厂的控制器中注入了一个新实例?

angularjs

616
推荐指数
11
解决办法
26万
查看次数

一个AngularJS控制器可以调用另一个吗?

是否有可能让一个控制器使用另一个?

例如:

此HTML文档只是打印MessageCtrl控制器在messageCtrl.js文件中传递的消息.

<html xmlns:ng="http://angularjs.org/">
<head>
    <meta charset="utf-8" />
    <title>Inter Controller Communication</title>
</head>
<body>
    <div ng:controller="MessageCtrl">
        <p>{{message}}</p>
    </div>

    <!-- Angular Scripts -->
    <script src="http://code.angularjs.org/angular-0.9.19.js" ng:autobind></script>
    <script src="js/messageCtrl.js" type="text/javascript"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

控制器文件包含以下代码:

function MessageCtrl()
{
    this.message = function() { 
        return "The current date is: " + new Date().toString(); 
    };
}
Run Code Online (Sandbox Code Playgroud)

这只是打印当前日期;

如果我要添加另一个控制器,DateCtrl它将日期以特定格式交还给MessageCtrl,那怎么会这样做呢?DI框架似乎关注XmlHttpRequests和访问服务.

html javascript angularjs

575
推荐指数
8
解决办法
39万
查看次数

AngularJS将数据传递给$ http.get请求

我有一个执行http POST请求的函数.代码如下所示.这很好用.

 $http({
   url: user.update_path, 
   method: "POST",
   data: {user_id: user.id, draft: true}
 });
Run Code Online (Sandbox Code Playgroud)

我有另一个http GET函数,我想发送数据到该请求.但我没有这个选择.

 $http({
   url: user.details_path, 
   method: "GET",
   data: {user_id: user.id}
 });
Run Code Online (Sandbox Code Playgroud)

的语法http.get

get(url,config)

有人可以帮我弄这个吗?

javascript javascript-framework angularjs

572
推荐指数
4
解决办法
66万
查看次数

如何在AngularJS的ng-options中设置value属性?

这似乎困扰了很多人(包括我).

ng-options在AngularJS中使用指令来填充<select>标记的选项时,我无法弄清楚如何设置选项的值.这方面的文档真的不清楚 - 至少对像我这样的傻瓜来说.

我可以像这样轻松设置选项的文本:

ng-options="select p.text for p in resultOptions"
Run Code Online (Sandbox Code Playgroud)

resultOptions例如为:

[
    {
        "value": 1,
        "text": "1st"
    },
    {
        "value": 2,
        "text": "2nd"
    }
]
Run Code Online (Sandbox Code Playgroud)

它应该(并且可能是)设置选项值最简单的事情,但到目前为止我还没有得到它.

javascript angularjs

551
推荐指数
14
解决办法
43万
查看次数

ng-model和ng-bind之间有什么区别

目前,我正在学习AngularJS和我难以理解的区别ng-bindng-model.

任何人都可以告诉我他们的差异,以及何时应该使用另一个?

angularjs ng-bind angular-ngmodel

551
推荐指数
6
解决办法
24万
查看次数

两次对抗AngularJS执行控制器

我理解AngularJS会运行一些代码两次,有时甚至更多,比如$watch事件,不断检查模型状态等.

不过我的代码:

function MyController($scope, User, local) {

var $scope.User = local.get(); // Get locally save user data

User.get({ id: $scope.User._id.$oid }, function(user) {
  $scope.User = new User(user);
  local.save($scope.User);
});

//...
Run Code Online (Sandbox Code Playgroud)

执行两次,将2条记录插入我的数据库.我显然还在学习,因为我多年来一直在抨击这个!

angularjs

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

链接vs编译与控制器

创建指令时,可以将代码放入编译器,链接函数或控制器中.

在文档中,他们解释说:

  • 编译和链接功能用于角度循环的不同阶段
  • 控制器在指令之间共享

但是,对我而言,目前尚不清楚哪种代码应该去哪里.

例如:我可以在编译中创建函数并将它们附加到链接中的作用域,还是仅将函数附加到控制器中的作用域?

如果每个指令都有自己的控制器,控制器如何在指令之间共享?控制器是真的共享还是只是范围属性?

angularjs angularjs-directive

525
推荐指数
6
解决办法
23万
查看次数

Polymer元素和AngularJS指令有什么区别?

在Polymer Getting Started页面上,我们看到Polymer的实例:

<html>
  <head>
    <!-- 1. Shim missing platform features -->
    <script src="polymer-all/platform/platform.js"></script>
    <!-- 2. Load a component -->
    <link rel="import" href="x-foo.html">
  </head>
  <body>
    <!-- 3. Declare the component by its tag. -->
    <x-foo></x-foo>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

您将注意到的是<x-foo></x-foo>platform.js和定义的x-foo.html.

看起来这相当于AngularJS中的指令模块:

angular.module('xfoo', [])
.controller('X-Foo', ['$scope',function($scope) {
    $scope.text = 'hey hey!';
})
.directive('x-foo', function() {
    return {
        restrict: 'EA',
        replace: true,
        controller: 'X-Foo',
        templateUrl: '/views/x-foo.html',
        link: function(scope, controller) {
        }
    };
});
Run Code Online (Sandbox Code Playgroud)
  • 两者有什么区别?

  • Polymer解决AngularJS没有或不会有什么问题?

  • 是否有计划在未来将Polymer与AngularJS联系起来?

javascript angularjs polymer

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

使用ng-class添加多个类

我们可以有多个表达式来添加多个ng-class吗?

例如.

<div ng-class="{class1: expressionData1, class2: expressionData2}"></div>
Run Code Online (Sandbox Code Playgroud)

如果是的话,任何人都可以提出这样做​​的例子.

.

angularjs ng-class

517
推荐指数
10
解决办法
43万
查看次数