我发现这个代码片段,这是一个有人写为引导模态的angular度指令的一部分。 //Update the visible value when the dialog is closed //through UI actions (Ok, cancel, etc.) element.bind("hide.bs.modal", function () { scope.modalVisible = false; if (!scope.$$phase && !scope.$root.$$phase) scope.$apply(); }); 我了解到这部分是为了绑定到后端的双向绑定,当UI改变时,绑定到hide.bs.modal事件并更新模态。 我只想知道为什么在调用apply之前为scope和rootScope检查$$阶段的人? 我们不能直接打电话申请吗? 什么是$$阶段? 我试了很多,找不到任何好的解释。 编辑: 我find了自己的例子: Bootstrap Modal的简单angular度指令
我有组件,并有一个问题设置为它的CSS类。 我希望它总是有一个“框”类,然后有指令“class”参数指定的附加类和一个条件类“mini”。 从概念上说,我想要达到的是这样的: <div class="box {{class}}" data-ng-class="{mini: !isMaximized}"> … </div> 问题是,当我设置类的HTML属性,ng-class属性被省略。 如何让我的例子在不更改控制器的情况下工作? 这是甚至可能的,还是应该在控制器中设置类(而我希望避免)?
我想使用ng-init设置$ scope属性的值,并且我无法访问控制器的javascript中的值。 我究竟做错了什么? 这是一个小提琴: http : //jsfiddle.net/uce3H/ 标记: <body ng-app> <div ng-controller="testController" > <input type="hidden" id="testInput" ng-model="testInput" ng-init="testInput='value'" /> </div> {{ testInput }} </body> JavaScript的: var testController = function ($scope) { console.log($scope.testInput); } 在javascrippt中,$ scope.testInput是未定义的。 不应该是“价值”?
所以我有这个指令称为, mySave ,这几乎就是这个 app.directive('mySave', function($http) { return function(scope, element, attrs) { element.bind("click", function() { $http.post('/save', scope.data).success(returnedData) { // callback defined on my utils service here // user defined callback here, from my-save-callback perhaps? } }); } }); 元素本身看起来像这样 <button my-save my-save-callback="callbackFunctionInController()">save</button> callbackFunctionInController现在只是 $scope.callbackFunctionInController = function() { alert("callback"); } 当我console.log() attrs.mySaveCallback我的保存指令,它只是给了我一个stringcallbackFunctionInController() ,我读的地方 ,我应该parsing这个,这将是好的,所以我试图$parse(attrs.mySaveCallback) ,这让我回到了一些function,但几乎没有我正在寻找,它让我回来 function (a,b){return […]
我有这样的设置: 控制器c广播事件e 指令d监听e ,然后通过append写入到DOM中,这样就创build了指定指令d2新元素。 IE: element.append('<directiveTwo …>') Angular从不叫Angth指令 当我检查DOM(和debugging),我看到控制器c和指令d正在做他们的工作,我有新的directiveTwo要素。 什么不见了? dynamic创build这些元素后,需要做些什么来触发指令2调用?
我正在使用angular-ui-router的resolve ,在移到状态之前从服务器获取数据。 有时对服务器的请求失败,我需要通知用户有关失败。 如果我从控制器调用服务器,那么我可以把呼叫我的通知服务,在呼叫失败的情况下。 我打电话给服务器resolve因为我希望后代状态等待来自服务器的结果,才开始。 哪里可以捕捉错误的情况下,呼叫服务器失败? (我已阅读文档,但仍不确定如何。此外,我正在寻找一个理由来尝试这个新的片段工具:)。 "use strict"; angular.module('MyApp', ["ui.router"]).config([ "$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise("/item"); $stateProvider .state("list", { url: "/item", template: '<div>{{listvm}}</div>' + '<a ui-sref="list.detail({id:8})">go to child state and trigger resolve</a>' + '<ui-view />', controller: ["$scope", "$state", function($scope, $state){ $scope.listvm = { state: $state.current.name }; }] }) .state("list.detail", { url: "/{id}", template: […]
我试图在我的ng-repeat中设置一个dynamic的id给我的div。 让我举个例子。 <div id="$index" ng-repeat="repeat in results.myJsonResults"> <div id="$index" ng-click="saveID($index)" ng-repeat="subRepeat in results.myJsonResults.subresults"> </div> 我的问题是,当我点击我的子div,我想要得到我的父母id名称,但看起来像angular没有正确设置ID到div。 在这个概念中可以设置一个dynamicID吗? PS:我曾尝试在我的控制器上创build一个计数器方法并设置一个索引,但事实certificate,angular度只能识别这个ID的最后一个值。
我有一个返回图片URL的服务,并使用以下代码调用它: angular.forEach(results, function (item) { item.img = "http://img.dovov.comsearchItem.jpg"; $http.post("https://my.api.com/?id=" + item.id).success( function (url) { item.img = url; }); }); 在我看来,我曾经有一个与ng-src属性的图像,这样完美的工作: <img ng-src="{{item.img}}"> 然后我决定在SPAN上使用背景图像: <span ng-style="{'background':'transparent url({{item.img}})'}"></span> 现在这个stream程只能在第一次运行,之后我可以看到(在控制台中)下面的html <span ng-style="{'background':'transparent url(http://expertsimages.liveperson.comhttp://img.dovov.comrating/rate10.gif)'}" style="background-image: url(https://fb.lp-chat.comhttp://img.dovov.comsearchItem.jpg); background-color: transparent; background-position: initial initial; background-repeat: initial initial;"></span> 这表示variables已经更新,但是html仍然处于初始状态。 我试图打电话申请/消化成功,但得到了一个错误$摘要已经在进行 (这是有道理的)。 平常的事情是,经过一个正常的摘要(例如在其他用户界面的变化)风格正在应用,我看到正确的形象。 我在这里错过了什么? 更新:我已经创build了一个JS小提琴演示这个问题…看起来像一个错误angular度给我。
在Angularjs应用程序中,我有一个像 http://url.com/my_app/#/store/items 。 现在我想追加查询string为例, http://url.com/my_app/#/store/items?page=2 。 但在URL中,JavaScript编码"?" to "%3F" "?" to "%3F"我不想要的"?" to "%3F" 。 它应该保持“?” 只有在url为angularjs $ location.search()没有返回任何“%3F”。 如何做到这一点?
背景 我目前正在构build一个使用NodeJS服务器的网站, Express Handlebars (只是Handlebars,但服务器端),并希望AngularJS的一些客户端的东西。 问题 AngularJS和Handlebars使用相同的语法模板 {{foo}} 这会导致AngularJS代码首先被Express Handle解释的问题,然后它会抛出一个错误,因为它试图拉取的数据只存在于Angular not Node中。 问题 有没有办法让AngularJS和Express车把一起工作? 可能的解决scheme 改变AngularJS的语法 我在看BackboneJS,它看起来像是可以改变语法。 AngularJS可能有类似的东西。 在快速把手中创build一个辅助工具。 它只会返回未parsing的内容。 但是我无法弄清楚如何做到这一点。