我是Angular JS的新手。 我search了很多,但它不能解决我的问题。 我在select框中第一次获得空白选项。 这是我的HTML代码 <div ng-app="MyApp1"> <div ng-controller="MyController"> <input type="text" ng-model="feed.name" placeholder="Name" /> <select ng-model="feed.config"> <option ng-repeat="template in configs">{{template.name}}</option> </select> </div> </div> JS var MyApp=angular.module('MyApp1',[]) MyApp.controller('MyController', function($scope) { $scope.feed = {}; //Configuration $scope.configs = [ {'name': 'Config 1', 'value': 'config1'}, {'name': 'Config 2', 'value': 'config2'}, {'name': 'Config 3', 'value': 'config3'} ]; //Setting first option […]
XMLHttpRequest cannot load http://mywebservice. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. 当我尝试从我的代码中运行我的Web服务时,出现此错误。 我试图find它,并尝试了许多解决scheme,这是我在网上find的build议。 粘贴下面的代码。 <form name="LoginForm" ng-controller="LoginCtrl" ng-submit="init(username,password,country)"> <label>Country</label><input type="text" ng-model="country"/><br/><br/> <label>UserName</label><input type="text" ng-model="username" /></br></br> <label>Password</label><input type="password" ng-model="password"> </br> <button type="submit" >Login</button> </form> 而控制器形成相应的js是: app.controller('LoginController', ['$http', '$scope', function ($scope, $http) { $scope.login = function (credentials) { […]
我很好奇$scope.$eval你经常在指令中看到,所以我检查了源代码并在rootScope.js发现了以下内容: $eval: function(expr, locals) { return $parse(expr)(this, locals); }, $parse似乎是由ParseProvider中的parse.js定义的,它似乎定义了它自己的一种迷你语法(文件长度为900行)。 我的问题是: 什么是$eval在做什么? 为什么它需要自己的小parsing语言? 为什么不是简单的旧的JavaScript eval被使用?
提交表单后,我遇到了更改网页url的问题。 这是我的应用程序的stream程: 路由被设置,URL被识别到某个表单页面。 页面加载,控制器设置variables,指令被激发。 一个特殊的表单指令被激发,使用AJAX执行特殊的表单提交。 AJAX执行后(Angular不关心AJAX),然后callback被触发,指令调用设置位置的$scope.onAfterSubmit函数。 问题是,设置位置后没有任何反应。 我已经尝试设置位置参数/以及…不。 我也试过不提交表格。 没有任何工作 我已经testing,看看代码是否到达onAfterSubmit函数(它)。 我唯一的想法是,函数的作用域被改变了(因为它是从一个指令中调用的),但是如果作用域改变了,又怎么能调用onAfterSubmit呢? 这是我的代码 var Ctrl = function($scope, $location, $http) { $http.get('/resources/' + $params.id + '/edit.json').success(function(data) { $scope.resource = data; }); $scope.onAfterSubmit = function() { $location.path('/').replace(); }; } Ctrl.$inject = ['$scope','$location','$http']; 有人可以帮我吗?
我是一个AngularJS初学者。 我正试图从以下地址发送数据: 页面A:范列表页面 至 页面B:范更新页面。 当用户点击面包车的更新链接时,我正在调用控制器并在控制器中检索面包车的详细信息。 但是,我不能使用相同的控制器分配面包车的详细信息到页面B(范更新页面)…错误"Cannot set property 'vanNumber' of undefined" *** Page A: Van List **** <form name="listVanForm" > <table> <tr> <td ng-controller="VanUpdateCtrl"><a href="#/van-update" ng-click="prePopulateForm(row.members.vanNumber.value )" class="btn btn-small btn-primary">update</a></td> </tr> </table> </form> *** Page B: Van Update **** <div class="container"> <h2>Edit Van </h2> <form name="updateVanForm" novalidate="novalidate" class="form-horizontal" ng-submit="updateCard(formData)"> <div class="control-group"> <label class="control-label" >Van […]
我试图从我的Angular.js应用程序中删除jquery,以使其更轻,并把Angular的jqLite代替。 但是该应用程序大量使用find('#id')和find('.classname'),这些不被jqLite支持,只有'标签名'(按照文档) 想知道你觉得什么是最好的方法来改变它。 我想到的一种方法是创build自定义的HTML标签。 例如:改变 <span class="btn btn-large" id="add-to-bag">Add to bag</span> 至 <a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b> 和 $element.find('#add-to-bag') 至 $element.find('a2b') 有什么想法吗? 其他的想法? 谢谢 利奥尔
我正在写密码validation指令: Directives.directive("passwordVerify",function(){ return { require:"ngModel", link: function(scope,element,attrs,ctrl){ ctrl.$parsers.unshift(function(viewValue){ var origin = scope.$eval(attrs["passwordVerify"]); if(origin!==viewValue){ ctrl.$setValidity("passwordVerify",false); return undefined; }else{ ctrl.$setValidity("passwordVerify",true); return viewValue; } }); } }; }); html: <input data-ng-model='user.password' type="password" name='password' placeholder='password' required> <input data-ng-model='user.password_verify' type="password" name='confirm_password' placeholder='confirm password' required data-password-verify="user.password"> 给定一个表单中的2个密码字段,如果两个密码值相等,则指令影响的字段是有效的。 问题是,它的工作方式(即当我在密码validation字段中input密码)。 但是,当更新原始密码字段时,密码validation无效。 任何想法我怎么能有一个“双向绑定validation?”
之前有人问过,从答案来看,这看起来不太好。 我想问一下这个示例代码 我的应用程序在提供它的服务中加载当前项目。 有几个控制器可以在不重新加载项目的情况下操作项目数据。 我的控制器将重新加载项目,如果它还没有设置,否则,它将使用当前加载的项目从服务,控制器之间。 问题 :我想为每个控制器使用不同的path,而无需重新加载Item.html。 1)这可能吗? 2)如果这是不可能的,是否有一个更好的方法来使每个控制器的path与我在这里想出的? app.js var app = angular.module('myModule', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/items', {templateUrl: 'partials/items.html', controller: ItemsCtrl}). when('/items/:itemId/foo', {templateUrl: 'partials/item.html', controller: ItemFooCtrl}). when('/items/:itemId/bar', {templateUrl: 'partials/item.html', controller: ItemBarCtrl}). otherwise({redirectTo: '/items'}); }]); Item.html <!– Menu –> <a id="fooTab" my-active-directive="view.name" href="#/item/{{item.id}}/foo">Foo</a> <a id="barTab" my-active-directive="view.name" href="#/item/{{item.id}}/bar">Bar</a> <!– Content –> <div class="content" ng-include="" […]
我的图像看起来像<img ng-src="dynamically inserted url"/> 。 加载单个图像时,我需要应用iScroll refresh()方法,以便使图像可以滚动。 什么是最好的方式知道什么时候图像完全加载运行一些callback?
我有一个forms延伸了几页的情况(可能不是很理想,但事实就是这样)。 我想为整个表单填充一个范围,这样,如果用户在两个步骤之间来回切换,就很容易记住这个状态。 所以我需要做的是非常伪代码: 设置$scope.val = <Some dynamic data> 点击一个链接,并路由到一个新的模板(可能与相同的控制器)。 $scope.val应该仍然是最后一页上的值。 是以某种方式坚持数据的范围正确的方式去这个,或者有其他的方式? 你甚至可以创build一个在路由之间有一个持久范围的控制器,除了将其保存在数据库中。