Tag: angularjs

在angular$ http服务中,如何捕获错误的“状态”?

我正在读一本名为“Pro Angular JS”的书。 但是,我有一个关于如何捕捉错误状态的问题。 我编码是: $http.get(dataUrl) .success(function (data){ $scope.data.products = data; }) .error(function (error){ $scope.data.error=error; console.log($scope.data.error.status); // Undefined! // (This is the spot that I don't get it.) }); 如果我编码“console.log($ scope.data.error.status);” ,为什么console.log的参数是未定义的? 在书中,有一句话:“传递给错误函数的对象定义了状态和消息属性”。 所以我做了$ scope.data.error.status 为什么错了?

使用jquery / javascript调用angularjs函数

我正在尝试使用JavaScript / jQuery调用angular函数,以下是我find的链接 用Jquery调用Angular函数 从控制器组件外部呼叫控制器function 我采取了相同的步骤,但在浏览器控制台中出现错误 Uncaught TypeError: Cannot call method 'myfunction' of undefined 我创造了小提琴 。 如何调用myfunction函数并显示警报? 任何想法?

AngularJS与$ location.path分页,但没有ngView重新加载

我的单页应用程序加载一个主页,我想显示一系列的想法。 每个想法都显示在一个animation的闪存容器中,animation显示在这些想法之间循环。 想法被加载使用$ http: $scope.flash = new FlashInterface scope:$scope,location:$location $http.get("/competition.json") .success (data) -> $scope.flash._init data 但是,为了从历史导航和UX中受益,我希望使用$ location更新地址栏以显示每个想法的正确url: $location.path "/i/#{idea.code}" $scope.$apply() 我在这里调用$ apply,因为这个事件来自于AngularJS上下文,即Flash。 我想为当前的控制器/视图保持和视图不重新加载。 这是非常糟糕的,因为重新加载视图导致整个Flash对象被扔掉,并且preloader循环再次开始。 我试着听$ routeChangeStart做一个preventDefault: $scope.$on "$routeChangeStart", (ev,next,current) -> ev.preventDefault() $scope.$on "$routeChangeSuccess", (ev,current) -> ev.preventDefault() 但无济于事。 整个事情将是hunky dory,如果我可以找出重写视图重新加载当我更改$ location.path的方式。 我仍然很感激AngularJS的方式,所以我会很高兴有关如何构build应用程序来实现我的目标的任何指针!

Angularjs $ http发布文件和表单数据

我有下面的请求在Python中 import requests, json, io cookie = {} payload = {"Name":"abc"} url = "/test" file = "out/test.json" fi = {'file': ('file', open(file) )} r = requests.post("http://192.168.1.1:8080" + url, data=payload, files=fi, cookies=cookie) print(r.text) 它发送一个文件,并将字段形成到后端。 我怎样才能做到这一点(发送文件+表单字段)Angular $ http。 目前,我这样做,但不知道如何发送文件。 var payload = {"Name":"abc"}; $http.post('/test', payload) .success(function (res) { //success });

如何使量angular器按input键?

我试过这个: browser.actions().keyDown(protractor.Key.ENTER).keyUp(protractor.Key.Enter).perform(); 这给出了错误: Error: Not a modifier key

Angular UI-Router如何创build一个“布局”状态?

给定一个像这样的HTML文件: <html> <header ui-view="header"></header> <div class="main" ui-view></div> <footer ui-view="footer"></footer> </html> 如何创build一个布局状态,填充“标题”模板,页脚与页脚模板,然后允许子状态填充空的UI视图? 我猜想空的ui-view也可以被命名为ui-view =“main”。

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

最近我开始重新构build我正在使用TypeScript的Angular项目之一。 使用TypeScript类来定义控制器非常方便,并且由于static $inject Array<string>属性,所以可以很好地处理缩小的JavaScript文件。 而且你可以得到相当干净的代码,不需要从类定义中分解angular依赖关系: module app { 'use strict'; export class AppCtrl { static $inject: Array < string > = ['$scope']; constructor(private $scope) { … } } angular.module('myApp', []) .controller('AppCtrl', AppCtrl); } 现在我正在寻找解决scheme来处理指令定义的类似情况。 我发现一个很好的做法来定义指令作为函数: module directives { export function myDirective(toaster): ng.IDirective { return { restrict: 'A', require: ['ngModel'], templateUrl: 'myDirective.html', replace: true, link: (scope: […]

如何replaceAngularJS指令链接函数中的元素?

我创build了一个需要用一个可以包含任何HTML代码的dynamic模板replace自己的<row> AngularJS指令( <row>标记不能在DOM中出现)。 使用replace: true的问题是,它不能与表的<tr>标签一起工作,而且模板是dynamicselect的。 所以我试图find一种方法来replace链接函数中的元素,但没有成功。 使用jQuery的.replaceWith()打破ngRepeat为未知的原因。 任何提示? 这是小提琴

当我使用async / awaitfunction时,Angular UI路由器不处理parsing函数?

我一直在试图根据这篇文章呈现某个与状态和组件相关的模板 在我的项目下运行dev-server它一切正常,当我执行$state.go("home")组件模板加载我期望,但是当我在testing环境中这样做,这是行不通的。 在testing之前,当我使用“模板”而不是“组件”与ui-router一起使用“旧模式”时,执行$rootScope.$digest()就足以在<div ui-view></div>但使用这种新的方式,这不工作了。 我究竟做错了什么? 编辑 :我一直试图深入了解这个问题,我看到这个问题是与HTTP请求完成。 也许这与我的承诺使用async / awaitparsingcallback的方式有关。 请检查服务: 服务 export class TodoService { constructor($http, BASE_URL) { this.http = $http; this.url = `${BASE_URL}/todos` } async getTodos() { const apiResponse = await this.http.get(this.url) return apiResponse.data.todos } } 路由器 import '@uirouter/angularjs' export function routes($stateProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false, rewriteLinks: true, }) $stateProvider […]

多次解决承诺是否安全?

我在我的应用程序中有一个国际化的服务,其中包含以下代码: var i18nService = function() { this.ensureLocaleIsLoaded = function() { if( !this.existingPromise ) { this.existingPromise = $q.defer(); var deferred = this.existingPromise; var userLanguage = $( "body" ).data( "language" ); this.userLanguage = userLanguage; console.log( "Loading locale '" + userLanguage + "' from server…" ); $http( { method:"get", url:"/i18n/" + userLanguage, cache:true } ).success( function( translations ) […]