我是AngularJS的新手,并通过一些文档和教程来学习.我的问题是参考Egghead的视频系列,特别是这个视频,演示如何组合一个基本的搜索过滤器.我想在一个真正的应用程序中使用它,我正在为一个小蜡烛制造业务的朋友建立但是当我将其修改为她的蜡烛而不是复仇者联盟(如视频中的演示)我得到了这个错误:
未捕获错误:[$ injector:modulerr]由于以下原因无法实例化模块myApp:
错误:[$ injector:nomod]模块'myApp'不可用!您要么错误拼写了模块名称,要么忘记加载它.如果注册模块,请确保指定...
我将视频演示中的一个编辑(在数组中只有3个演员)版本复制到了一个jsfiddle并发现它仍然会产生相同的错误.(作为参考,Egghead演示在这里:http://www.thinkster.io/angularjs/ET1iee6rnm/angularjs-ngfilter).到目前为止,我已经在这个网站上阅读了至少六个类似的问题,并尝试了所提供的每个解决方案,但没有一个摆脱这个错误或导致复仇者搜索 - 在视频演示中工作得很好 - 实际上起作用正常.
HTML:
<div ng-app="myApp">
<div ng-controller="AvengersCtrl">
<input type="text" ng-model="search.$" />
<table>
<tr ng-repeat="actor in avengers.cast | filter:search">
<td>{{actor.name}}</td>
<td>{{actor.character}}</td>
</tr>
</table>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var myApp = angular.module('myApp', []);
myApp.factory('Avengers', function () {
var Avengers = {};
Avengers.cast = [
{
name: "Robert Downey Jr.",
character: "Tony Stark / Iron Man"
},
{
name: "Chris Evans",
character: "Steve Rogers / Captain America"
},
{
name: "Mark Buffalo", …Run Code Online (Sandbox Code Playgroud) 我已经在这里检查了文档和ng-href不工作线程,但我很难过.
ng-href是否需要完整路径?我目前看起来像<a ng-title="{{title.text}}" ng-id="{{id.num}}" ng-href="/page.php#param:{{id.num}}"><span>go here</span></a>,但是当我点击它时,它正确地改变了浏览器地址栏中的URL(这是一个合法的URL;我可以在地址栏中点击"输入",它将"去那里") ,它实际上并没有转到该页面.
出了什么问题?我是否需要将其与ng-click某种结合起来?如果是这样,为什么?
更新:链接将转到调用它的同一页面,但是使用不同的参数来显示不同的数据记录.我认为这可能与它有关...
我一直在搜索高低,以解释如何删除AngularJS总是在选择中呈现的空选项.当从直接放在代码中的JSON数组派生选项时,我发现了很多信息,但在使用数据对象时,我找不到任何有关删除此空选项的信息.
假设我的数据库中有对象"foo","foo"同时包含"name"和"bar_id".
有人可以告诉我有关使用数据对象执行此操作的线索吗?
http://jsfiddle.net/MTfRD/3/(这是上面链接的SO问题的其他人的小提琴;代码不是我的,而是取自那个小提琴.)
JS:
function MyCtrl($scope) {
$scope.typeOptions = [
{ name: 'Feature', value: 'feature' },
{ name: 'Bug', value: 'bug' },
{ name: 'Enhancement', value: 'enhancement' }
];
$scope.form = {type : $scope.typeOptions[0].value};
}
Run Code Online (Sandbox Code Playgroud)
我想得到foo.name和foo.bar_id.我希望foo.name是选项标签,foo.bar_id是值(例如<option value="foo.bar_id">foo.name</option>,对于每个foo,foo.bar_id将成为记录中的一个识别参数,用于拉出并显示"on change"(选择后立即)选项).
我已经尝试了所有我能想到的东西来设置它,似乎没有任何工作.最糟糕的是,它要么默默地失败,要么没有任何迹象表明我做错了什么,或抱怨foo不是一个对象,这让我感到沮丧.(我向你保证,"foo"是由我正在处理的实际代码中的AJAX请求加载的,并且在其他地方作为对象正常工作 - 尽管如此,NDAs禁止我共享实际代码,抱歉.)
使用其他线程中的上述示例,我理解我会ng-model="typeOptions"在模板中的select标签中分配一些内容,但是如何获取"typeOptions"来访问foo并使foo.name成为选项标签而foo.bar_id是选项值?此外,选项的默认角度值(看起来像生成的索引的那些)对我来说很好,但是我仍然需要调用foo.bar_id来完成任务,所以它必须"在某处".
任何帮助,将不胜感激; 目前我坚持选项本身的hackish ng-repeat,我理解这不是最佳实践..而且我在Angular中仍然相当新,但仍然觉得有些混乱,所以你的答案更简单,更直接,我将能够更好地成功使用它们.谢谢!
html-select angularjs angularjs-scope ng-options angularjs-ng-init