Tag: angularjs controller

使用Controller As方法访问inheritance范围

使用定义控制器的原始方法 ,访问父级的范围相当简单,因为子级范围原型从其父级inheritance。 app.controller("parentCtrl", function($scope){ $scope.name = "Parent"; }) .controller("childCtrl", function($scope){ $scope.childName = "child of " + $scope.name; }); <div ng-controller="parentCtrl"> {{name}} <div ng-controller="childCtrl"> {{childName}} </div> </div> Controller-As方法似乎是声明控制器的推荐方式。 但是,对于Controller-As,上述方法不再有效。 当然,我可以通过View中的pc.name访问父范围: <div ng-controller="parentCtrl as pc"> {{pc.name}} <div ng-controller="childCtrl as cc"> {{cc.childName}} </div> </div> 我有这个问题(潜在的意大利面代码),但这个问题是关于从子控制器访问父范围。 我能看到这个工作的唯一方法是: app.controller("parentCtrl", function(){ this.name = "parent"; }) .controller("childCtrl", function($scope){ $scope.pc.name = "child of […]

错误:来自angular度控制器的

这是一个远射,但有没有人看过这个错误? 我正在尝试使用express,angular和mongoDB来添加“Transporters”。 每次访问由运输者控制器统治的页面时,都会收到此错误消息: Error: [ng:areq] http://errors.angularjs.org/1.2.12/ng/areq?p0=TransportersController&p1=not%20aNaNunction%2C%20got%20undefined at Error (native) at http://localhost:3000/lib/angular/angular.min.js:6:450 at tb (http://localhost:3000/lib/angular/angular.min.js:18:360) at Pa (http://localhost:3000/lib/angular/angular.min.js:18:447) at http://localhost:3000/lib/angular/angular.min.js:62:17 at http://localhost:3000/lib/angular/angular.min.js:49:43 at q (http://localhost:3000/lib/angular/angular.min.js:7:386) at H (http://localhost:3000/lib/angular/angular.min.js:48:406) at f (http://localhost:3000/lib/angular/angular.min.js:42:399) at http://localhost:3000/lib/angular/angular.min.js:42:67 运输车控制器看起来像这样: 'use strict'; angular.module('mean.transporters').controller('TransportersController', ['$scope', '$routeParams', '$location', 'Global', 'Transporters', function ($scope, $routeParams, $location, Global, Transporters) { $scope.global = Global; $scope.create = function() { […]

在Controller中使用$ setValidity

我正在尝试对文件更改做一些validation。 这是我的代码: 查看/模板 <input type="file" name="file" id="file" onchange="angular.element(this).scope().setFile(this)" required /> <span class="error" ng-show="myForm.file.$error.required">Error</span> <span class="error" ng-show="myForm.file.$error.size">Selected file is too large</span> <span class="error" ng-show="myForm.file.$error.filetype">Unsupported File type</span> 调节器 angular.module("myapp").controller("myctrl", function($scope) { $scope.setFile = function(element) { $scope.$apply(function($scope) { var fileObject = element.files[0]; $scope.file.fileType = fileObject.type.toUpperCase().substring(fileObject.type.indexOf("/") + 1); // Validation if (!$scope.isValidFileType($scope.file.fileType)) { myForm.file.$setValidity("myForm.file.$error.filetype", false); } if (fileObject.size > […]

AngularJS控制器能否从同一模块中的另一个控制器inheritance?

在模块中,控制器可以inheritance外部控制器的属性: var app = angular.module('angularjs-starter', []); var ParentCtrl = function ($scope, $location) { }; app.controller('ChildCtrl', function($scope, $injector) { $injector.invoke(ParentCtrl, this, {$scope: $scope}); }); 示例通过: 无效链接 : http : //blog.omkarpatil.com/2013/02/controller-inheritance-in-angularjs.html 一个模块中的控制器也可以inheritance兄弟吗? var app = angular.module('angularjs-starter', []); app.controller('ParentCtrl ', function($scope) { //I'm the sibling, but want to act as parent }); app.controller('ChildCtrl', function($scope, $injector) { $injector.invoke(ParentCtrl, this, […]

如何将控制器注入到AngularJS的另一个控制器中

我是Angular的新手,想弄清楚如何做… 使用AngularJS,我怎样才能注入一个控制器在另一个控制器中使用? 我有以下代码片段: var app = angular.module("testApp", ['']); app.controller('TestCtrl1', ['$scope', function ($scope) { $scope.myMethod = function () { console.log("TestCtrl1 – myMethod"); } }]); app.controller('TestCtrl2', ['$scope', 'TestCtrl1', function ($scope, TestCtrl1) { TestCtrl1.myMethod(); }]); 当我执行这个,我得到的错误: Error: [$injector:unpr] Unknown provider: TestCtrl1Provider <- TestCtrl1 http://errors.angularjs.org/1.2.21/$injector/unpr?p0=TestCtrl1Provider%20%3C-%20TestCtrl1 我是否应该尝试在另一个控制器内使用控制器,还是应该使用这个服务?

如何在Angular中使用$ rootScope来存储variables?

如何使用$rootScope将variables存储在控制器中,我想稍后在另一个控制器中访问? 例如: angular.module('myApp').controller('myCtrl', function($scope) { var a = //something in the scope //put it in the root scope }); angular.module('myApp').controller('myCtrl2', function($scope) { var b = //get var a from root scope somehow //use var b }); 我将如何做到这一点?

AngularJS:我怎样才能在控制器之间传递variables?

我有两个angular控制器: function Ctrl1($scope) { $scope.prop1 = "First"; } function Ctrl2($scope) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally } 我不能在Ctrl2使用Ctrl2因为它是未定义的。 但是,如果我试图通过它像这样… function Ctrl2($scope, Ctrl1) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally } 我得到一个错误。 有谁知道如何做到这一点? […]

Angularjs未捕获错误:

我正在学习Angular.js,我无法弄清楚这个简单的代码有什么问题。 它看起来很好,但给我下面的错误。 **Error**: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=app&p1=Error%3A%20…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381) 在添加ng-app= "app" (我只是把它保存为ng-app )之前,它给了我下面的错误。 这是为什么? Error: [ng:areq] http://errors.angularjs.org/1.3.14/ng/areq?p0=Ctrl&p1=not%20a%20function%2C%20got%20undefined at Error (native) at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:417 at Sb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:19:510) at tb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:20:78) at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:75:331) at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:57:65 at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:408) at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:56:443) at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:299) at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:316) <!doctype html> <html ng-app="app"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> </head> <body> <div ng-controller="Ctrl"> <input […]