Tag: angularjs

AngularJS在一个页面内多个ng-app

我刚开始学习Angular JS,并创build了一些基本的样本,但是我坚持下面的问题。 我创build了2个模块和2个控制器。 shoppingCart -> ShoppingCartController namesList -> NamesController 每个控制器都有相关的视图。 第一个视图呈现正常,但第二个不呈现。 没有错误。 http://jsfiddle.net/ep2sQ/ 请帮我解决这个问题。 也有可能在View中添加控制台来检查从Controller传递的值。 例如在下面的div中,我们可以添加console.log并输出控制器值 <div ng-app="shoppingCart" ng-controller="ShoppingCartController"> </div>

angular.service vs angular.factory

我已经看到angular.factory()和angular.service()用于声明服务; 然而,我不能在官方文档中的任何地方find angular.service 。 这两种方法有什么区别? 哪些应该用于什么(假设他们做不同的事情)?

如何在AngularJs中启用CORS

我已经使用JavaScript为Flickr照片searchAPI创build了一个演示。 现在我把它转换成AngularJs。 我在互联网上search,find下面的configuration。 组态: myApp.config(function($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; }); 服务: myApp.service('dataService', function($http) { delete $http.defaults.headers.common['X-Requested-With']; this.flickrPhotoSearch = function() { return $http({ method: 'GET', url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=3f807259749363aaa29c76012fa93945&tags=india&format=json&callback=?', dataType: 'jsonp', headers: {'Authorization': 'Token token=xxxxYYYYZzzz'} }); } }); 控制器: myApp.controller('flickrController', function($scope, dataService) { $scope.data = null; dataService.flickrPhotoSearch().then(function(dataResponse) { $scope.data = dataResponse; console.log($scope.data); }); }); 但是我仍然有同样的错误。 这里有一些我试过的链接: […]

ng-repeat结束事件

我想调用一些jQuery函数针对div与表。 该表使用ng-repeat填充。 当我打电话 $(document).ready() 我没有结果。 也 $scope.$on('$viewContentLoaded', myFunc); 没有帮助。 ng-repeat群体完成后,是否有任何方法可以执行? 我已阅读关于使用自定义directive的build议,但我不知道如何使用ng-repeat和我的div …

当ng-repeat完成时调用一个函数

我试图实现的基本上是“在重复完成渲染”处理程序。 我能够检测到什么时候完成,但我不知道如何从中触发function。 检查小提琴: http : //jsfiddle.net/paulocoelho/BsMqq/3/ JS var module = angular.module('testApp', []) .directive('onFinishRender', function () { return { restrict: 'A', link: function (scope, element, attr) { if (scope.$last === true) { element.ready(function () { console.log("calling:"+attr.onFinishRender); // CALL TEST HERE! }); } } } }); function myC($scope) { $scope.ta = [1, 2, 3, 4, 5, 6]; […]

延迟AngularJS路线更改,直到加载模型以防止闪烁

我想知道是否有一种方式(类似于Gmail)的AngularJS 延迟显示一个新的路线,直到每个模型及其数据已被提取使用其各自的服务。 例如,如果有一个ProjectsController列出所有的项目, project_index.html是显示这些项目的模板,那么Project.query()将在显示新页面之前被完全提取。 在此之前,旧的页面仍然会继续显示(例如,如果我正在浏览另一个页面,然后决定看到这个项目索引)。

从数据库编译dynamicHTMLstring

情况 在Angular应用程序中嵌套的是一个名为Page的指令,由一个控制器支持,该控制器包含一个带有ng-bind-html-unsafe属性的div。 这被分配给一个名为“pageContent”的$ scope var。 这个var从数据库中获取dynamic生成的HTML。 当用户翻到下一页时,调用DB,pageContent var被设置为这个新的HTML,通过ng-bind-html-unsafe在屏幕上显示。 代码如下: 页指令 angular.module('myApp.directives') .directive('myPage', function ($compile) { return { templateUrl: 'page.html', restrict: 'E', compile: function compile(element, attrs, transclude) { // does nothing currently return { pre: function preLink(scope, element, attrs, controller) { // does nothing currently }, post: function postLink(scope, element, attrs, controller) { // does nothing […]

重新加载页面给AngularJS HTML5模式提供了错误的GET请求

我想为我的应用程序启用HTML5模式。 我已经把下面的代码放在configuration中,如下所示: return app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider) { $locationProvider.html5Mode(true); $locationProvider.hashPrefix = '!'; $routeProvider.when('/', { templateUrl: '/views/index.html', controller: 'indexCtrl' }); $routeProvider.when('/about',{ templateUrl: '/views/about.html', controller: 'AboutCtrl' }); 正如你所看到的,我使用了$locationProvider.html5mode并且在ng-ref中我改变了所有的链接来排除/#/ 。 问题 目前,我可以去localhost:9000/并看到索引页面,并导航到其他页面,如localhost:9000/about 。 但是,刷新localhost:9000/about页面时会发生此问题。 我得到以下输出: Cannot GET /about 如果我看networking电话: Request URL:localhost:9000/about Request Method:GET 而如果我第一次去localhost:9000/然后点击一个button导航到/about我得到: Request URL:http://localhost:9000/views/about.html 它使页面完美呈现。 我怎样才能启用angular度得到正确的页面,当我刷新? 先谢谢你。

$ location / html5和hashbang模式/链接重写之间的切换

我的印象是,Angular会重写出现在临时标签内的锚标签的href属性中的URL,使得它们可以在html5模式或hashbang模式下工作。 位置服务的文档似乎说HTML链接重写照顾的hashbang的情况。 因此,我期望在不使用HTML5模式时,插入哈希值,而在HTML5模式下,则不会。 但是,似乎没有重写正在发生。 下面的例子不允许我改变模式。 应用程序中的所有链接都需要手动重写(或者在运行时从variables派生出来)。我是否需要根据模式手动重写所有URL? 我没有看到在Angular 1.0.6,1.1.4或1.1.3中有任何客户端的URL重写。 似乎所有的href值都需要用#/作为hashbang模式和/ html5模式。 是否有一些configuration需要重写? 我误解了文档吗? 做别的事情傻吗? 这是一个小例子: <head> <script src="../../../ajax/libs/angular.js/1.1.3/angular.js"></script> </head> <body> <div ng-view></div> <script> angular.module('sample', []) .config( ['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { //commenting out this line (switching to hashbang mode) breaks the app //– unless # is added to the templates $locationProvider.html5Mode(true); $routeProvider.when('/', { template: 'this […]

ng-model for <input type =“file”/>

我试图用types文件在input标签上使用ng-model: <input type="file" ng-model="vm.uploadme" /> 但是在select文件后,在控制器中,$ scope.vm.uploadme仍然是未定义的。 我如何获得我的控制器中选定的文件?