Tag: angularjs

AngularJS指令不会更新范围variables更改

我试着写一个小指令,用另一个模板文件来包装它的内容。 此代码: <layout name="Default">My cool content</layout> 应该有这个输出: <div class="layoutDefault">My cool content</div> 由于布局“默认”有这样的代码: <div class="layoutDefault">{{content}}</div> 这里指令的代码是: app.directive('layout', function($http, $compile){ return { restrict: 'E', link: function(scope, element, attributes) { var layoutName = (angular.isDefined(attributes.name)) ? attributes.name : 'Default'; $http.get(scope.constants.pathLayouts + layoutName + '.html') .success(function(layout){ var regexp = /^([\s\S]*?){{content}}([\s\S]*)$/g; var result = regexp.exec(layout); var templateWithLayout = result[1] + element.html() […]

指令是在承诺解决之前呈现的

我有问题得到我的指示,只有在我的承诺解决后,才能呈现其内容。 我以为then()应该这样做,但似乎并没有工作.. 这是我的控制器: // Generated by CoffeeScript 1.6.3 (function() { var sprangularControllers; sprangularControllers = angular.module('sprangularControllers', ['sprangularServices', 'ngRoute']); sprangularControllers.controller('productsController', [ '$scope', '$route', '$routeParams', 'Product', 'Taxonomy', function($scope, $route, $routeParams, Product, Taxonomy) { Taxonomy.taxonomies_with_meta().$promise.then(function(response) { return $scope.taxonomies = response.taxonomies; }); return Product.find($routeParams.id).$promise.then(function(response) { return $scope.currentProduct = response; }); } ]); }).call(this); 我的指示: // Generated by CoffeeScript 1.6.3 (function() […]

AngularJS <a>标记链接不工作

我有从search返回的对象的索引。 该模板具有ng-repeat,其中项目的URL是从模型中的数据构build的,但是在最终的标记中,“a”标记不起作用。 ng-href和href是正确的,当链接被点击但是页面不加载时,URL栏会改变。 点击后进行浏览器刷新确实得到页面。 所以在Angular的东西是改变url栏,但不触发负载? 无法在jsfiddle中进行重现,因为问题似乎是在$ resource.query()函数之后将json加载到模板中,我无法从jsfiddle中执行此操作。 使用模拟查询加载静态数据,即使最终的标记看起来相同,jsfiddle也能正常工作。 AngularJS模板如下所示: <div ng-controller="VideoSearchResultsCtrl" class="row-fluid"> <div class="span12" > <div class="video_thumb" ng-repeat="video in videos"> <p> <a ng-href="/guides/{{video._id}}" data-method="get"> <img ng-src="{{video.poster.large_thumb.url}}"> </a> </p> </div> </div> </div> 结果看起来不错,并产生以下最后的标记: <div ng-controller="VideoSearchResultsCtrl" class="row-fluid ng-scope"> <div class="span12"> <!– ngRepeat: video in videos –><div class="video_thumb ng-scope" ng-repeat="video in videos"> <p> <a ng-href="/guides/5226408ea0eef2d029673a80" data-method="get" href="/guides/5226408ea0eef2d029673a80"> <img […]

参数'fn'不是函数得到的string

我有一个angular色应用程序,我绑定了一个控制器的一部分, 从那时起我得到了参数“FN”不是一个函数错误,任何人都可以看我的代码,并解释为什么我得到了错误? 我会非常gratefull 🙂 HTML的标记: <section class="col-lg-12" data-ng-controller="MessageController"> <fieldset> <legend>{{ 'MESSAGES' | translate }}</legend> </fieldset> <div class="margin-left-15"> <ul class="list-style-button"> <li data-ng-repeat="message in MSG">{{ message }}</li> </ul> </div> </section> 控制器: (function () { 'use strict'; var controllers = angular.module('portal.controllers'); controllers.controller('MessageController',['$scope','MessageService','$rootScope', function MessageController($scope, MessageService, $rootScope){ $rootScope.MSG = MessageService.getMessages(); $rootScope.$watch('MSG', function(newValue){ $scope.MSG = newValue; }); }]); }()); 服务: […]

Angularjs – 简单的表单提交

我正在通过AngularJs学习曲线,我发现实际上没有任何示例可以为现实世界使用。 我想清楚了解如何使用最标准的组件提交表单并将其传递给PHP文件。 我的小提琴 有没有人有提交简单的,没有污染的forms,可以帮助我和其他许多Angularjs初学者的好例子.. 当我说一个干净的forms,我指的是这样的事情.. <div ng-app="myApp"> <form name="saveTemplateData" action="#" ng-controller="FormCtrl" ng-submit="submitForm()"> First name: <br/><input type="text" ng-model="form.firstname"> <br/><br/> Email Address: <br/><input type="text" ng-model="form.emailaddress"> <br/><br/> <textarea rows="3" cols="25" ng-model="form.textareacontent"></textarea> <br/><br/> <input type="radio" ng-model="form.gender" value="female" />Female … <input type="radio" ng-model="form.gender" value="male" />Male <br/> <br/><br/> <input type="checkbox" ng-model="form.member" value="5"/> Already a member <br/><br/> <input type="file" ng-model="form.file_profile" id="file_profile"><br/> <input […]

在表内的行上使用ng-repeat和ng-class

我正在使用AngularJS,我想要得到的效果会类似于这会产生什么,假设它会工作(它不)。 视图 <tr ng-repeat='person in people' ng-class='rowClass(person)'> <td>…..info about person…</td> <td>…..info about person…</td> <td>…..info about person…</td> </tr> 调节器 $scope.rowClass = function(person){ …return some value based upon some property of person… } 我意识到这段代码不会工作,因为person不可用于ng-class因为它只对每行内的对象可用。 该代码是要了解我正在尝试做什么:即。 我想能够有使用ng-repeat创build的表行,这些行的类也是基于一个条件,这个条件依赖于访问行本身的作用域特征,例如。 person 。 我意识到我可以在列上添加ng-class,但这很无聊。 任何人有更好的想法?

AngularJS自动同步服务器和客户端之间的数据

在AngularJS文档中有些东西我似乎无法find,或者我只是想念。 我在后端创build了一个带有NodeJS和Express的Web应用程序,我试图了解它如何在前端与Angular进行交互。 特别是,我将有一个用于Angular获取信息的JSON API。 我希望前端始终处于最新状态。 我的问题是: 双向数据绑定function是否意味着Angular($ resource或$ http)每n秒自动从服务器获取数据? 它自然使用长轮询,短轮询还是websocket? 你需要JQuery来实现服务器 – 客户端同步还是一切都可以用Angular来完成? 你是否需要添加额外的代码来使这种行为发生? 我需要使用$超时吗? 我似乎find的每个例子都涉及客户端获取数据一次。 不与服务器同步数据。

如何在AngularJs中使用私有方法编写可testing的控制器?

好吧,我长期以来一直在磕磕绊绊,我想听听其他社区的意见。 首先,我们来看看一些抽象控制器。 function Ctrl($scope, anyService) { $scope.field = "field"; $scope.whenClicked = function() { util(); }; function util() { anyService.doSmth(); } } 显然我们在这里: 控制器的定期脚手架与$scope和一些服务注入 一些领域和function附加到范围 私有方法util() 现在,我想在unit testing(Jasmine)中介绍这门课。 但是,问题是我想validation当我点击(调用whenClicked() )一些项目,将调用util()方法。 我不知道该怎么做,因为在Jasminetesting中,我总是得到一些错误,要么是util()的模拟没有被定义或者没有被调用。 注意:我没有试图解决这个特定的例子,我总是在testing这样的代码模式。 所以请不要告诉我“什么是确切的错误”。 我在问怎么做,而不是如何解决这个问题。 我一直在尝试很多方法: 显然我不能在我的unit testing中使用$scope ,因为我没有附加到这个对象的这个函数(它通常以消息Expected spy but got undefined结尾, Expected spy but got undefined或相似) 我尝试通过Ctrl.util = util;将这些函数附加到控制器对象Ctrl.util = util; 然后validationCtrl.util = jasmine.createSpy()像Ctrl.util = […]

说明相对于根的指令templateUrl

我目前正在说templateUrl相对于当前窗口的位置。 cvApp.directive('personalDetails', function () { return { restrict: 'A', templateUrl: '../../Scripts/app/templates/personalDetails.html' }; }); 我怎样才能使templateUrl相对于应用程序的根? 我正在寻找这样的东西: templateUrl: '~/Scripts/app/templates/personalDetails.html' AngularJS能完成这个吗?

AngularJS – 服务器端validation和客户端表单

我正在尝试了解如何执行以下操作: 什么是公认的方式来声明一个表格。 我的理解是你只要在HTML中声明表单,并添加ng-model指令,如下所示: ng-model="item.name" 什么发送到服务器。 我可以将项目对象作为JSON发送到服务器,并解释它。 然后我可以对对象执行validation。 如果失败,我会抛出一个JSON错误,然后发回到底是什么? 有没有一个可以接受的方法呢? 如何以一种很好的方式将validation错误从服务器推送到客户端? 我真的需要一个例子,但是Angulars文档很难理解。 编辑:似乎我的措辞差劲我的问题。 我知道如何validation客户端,以及如何处理错误/成功作为承诺callback。 我想知道的是将SERVER端错误消息捆绑到客户端的可接受方式。 说我有一个用户名和密码registry单。 我不想轮询服务器的用户名,然后使用Angular来确定存在重复。 我想发送用户名到服务器,validation没有其他帐户存在相同的名称,然后提交表单。 如果发生错误,我该如何发回? 把数据按原样(键和值)推入服务器,并附加一个错误字段,如下所示: { …data… "errors": [ { "context": null, "message": "A detailed error message.", "exceptionName": null } ] } 然后绑定到DOM。