为什么replace=true或replace=false在下面的代码中没有任何影响? 为什么当replace = false时不显示“一些现有的内容”? 或者更加谦虚地说,你能不能很好的解释指令中的replace=true/false特性以及如何使用它? 例 JS /angular: <script> angular.module('scopes', []) .controller('Ctrl', function($scope) { $scope.title = "hello"; }) .directive('myDir', function() { return { restrict: 'E', replace: true, template: '<div>{{title}}</div>' }; }); </script> HTML: <div ng-controller="Ctrl"> <my-dir><h3>some existing content</h3></my-dir> </div> 在这里看到Plunker: http://plnkr.co/edit/4ywZGwfsKHLAoGL38vvW?p=preview
我有几个路线的angular度应用程序,如: site.com/ site.com/page site.com/page/4 使用angular的html5路由模式,当你点击应用程序中的链接时,这些方法可以正确parsing,但是当你进行硬刷新的时候,当然是404错误。 为了解决这个问题,我尝试了一个基本的htaccess重写。 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_METHOD} !OPTIONS RewriteRule ^(.*)$ index.html [L] 这适用于angular度请求,但是当我尝试加载脚本或在我的域内进行ajax调用时,例如: <script src="/app/programs/script.js"></script> 这个脚本不加载 – 它的请求被redirect,它试图加载index.html页面,因为.htaccess认为它应该重新路由请求 – 不知道这个文件是否存在,它应该加载文件,而不是redirect。 有什么办法可以让htaccess的请求redirectindex.html(与视图参数)只有当没有一个实际的文件,它应该解决?
我有一个非常简单的angularJS应用程序的三个文件 的index.html <!DOCTYPE html> <html ng-app="gemStore"> <head> <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js'></script> <script type="text/javascript" src="app.js"></script> </head> <body ng-controller="StoreController as store"> <div class="list-group-item" ng-repeat="product in store.products"> <h3>{{product.name}} <em class="pull-right">{{product.price | currency}}</em></h3> </div> <product-color></product-color> </body> </html> 产品color.html <div class="list-group-item"> <h3>Hello <em class="pull-right">Brother</em></h3> </div> app.js (function() { var app = angular.module('gemStore', []); app.controller('StoreController', function($http){ this.products = gem; } ); app.directive('productColor', function() […]
我正在使用angular的$http.jsonp()请求,它成功地返回包装在一个函数中的json: var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=jsonp_callback"; $http.jsonp(url). success(function(data, status, headers, config) { //what do I do here? }). error(function(data, status, headers, config) { $scope.error = true; }); 如何访问/parsing返回的函数包装的JSON?
我有这个简单的情况: input元素的值由jQuery的val()方法改变。 我正在尝试用jQuery设置的值更新angular度模型。 我试图写一个简单的指令,但它没有做我想要的。 这是指令: var myApp = angular.module('myApp', []); myApp.directive('testChange', function() { return function(scope, element, attrs) { element.bind('change', function() { console.log('value changed'); }) } }) 这是jQuery的一部分: $(function(){ $('button').click(function(){ $('input').val('xxx'); }) }) 和html: <div ng-app="myApp"> <div ng-controller="MyCtrl"> <input test-change ng-model="foo" /> <span>{{foo}}</span> </div> </div> <button>clickme</button> 这里是我的尝试小提琴: http://jsfiddle.net/U3pVM/743/ 有人能指点我的方向吗?
我有这种forms: http : //jsfiddle.net/dfJeN/ 正如你所看到的,input的名字值是静态设置的: name="username" ,表单validation工作正常(添加一些东西,并从input中删除所有文本,一个文本必须出现)。 然后我尝试dynamic设置名称值: http : //jsfiddle.net/jNWB8/ name="{input.name}" 然后我将这个应用到我的validation login.{{input.name}}.$error.required (这个模式将用于ng-repeat),但我的表单validation被打破。 它在我的浏览器中正确解释(如果我检查元素,我看到login.username。$ error.required)。 任何想法 ? 编辑:在控制台中logging范围后,它出现了 {{input.name}} expression式不是插值的。 我的表单是{{input.name}}属性,但没有用户名。 更新:由于1.3.0-rc.3 name =“{{input.name}}”按预期工作。 请参阅#1404
当使用angular1.2而不是1.07时,下面的代码不再有效,为什么? 'use strict'; var app = angular.module('myapp', []); app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); $routeProvider. when('/', { templateUrl: 'part.html', controller: 'MyCtrl' }). otherwise({ redirectTo: '/' }); } ]); 问题是在喷油器configuration部分(app.config)中: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252) 如果我没有记错,这个问题开始于angular度1.1.6。
在加载大量图像/脚本时,似乎主要是IE中的一个问题,在标记中显示文字{{stringExpression}}的时间可能会很长,然后一旦完成angular度就会消失它是文档的编译/插值。 有一个共同的原因,为什么会发生这将表明我正在做一些普遍错误的事情,还是有一种已知的方法来防止这种情况?
我知道AngularJS通过一些代码运行两次,有时甚至更多,像$watch事件,不断检查模型状态等 但是我的代码: function MyController($scope, User, local) { var $scope.User = local.get(); // Get locally save user data User.get({ id: $scope.User._id.$oid }, function(user) { $scope.User = new User(user); local.save($scope.User); }); //… 执行两次,在我的数据库中插入2条logging。 我显然还在学习,因为我一直对这个头撞过头!
以下方法工作: $q.when() .then(checkCookieToken) // check if cookie already exists eg in cookie .then(setHeader) // set Header with REST-Token eg from cookie .then(checkTokenOnline) // if not OK logout .then(getMenu) // if previous OK get navigation menu .then(getDataResource) // set ngResource .then(getData); // and query it 4个问题: 1)如果例如checkTokenOnline不正确,我不想执行其余的函数,在这一点上我怎样才能退出(exit,break,whatever,..)? 2)我怎么能设置其中的一些并行和其中一些串行? 3)如何在它们之间传输数据? 4)我怎样才能使以前的结果依赖于以下function?