我无法访问AngularJS控制器中的数组,但它在视图中工作.
在控制器中:.results返回undefined
function TwitterCtrl($scope, $resource){
$scope.twitter = $resource('http://search.twitter.com/:action',
{action:'search.json', q:'angularjs', callback:'JSON_CALLBACK'},
{get:{method:'JSONP', params: {rpp: 4}}});
$scope.twitterResult = $scope.twitter.get({q:"example"});
//returns the resource object
console.log($scope.twitterResult)
//returns undefined
console.log($scope.twitterResult.results);
}
Run Code Online (Sandbox Code Playgroud)
在视图中:.results返回一组推文
//This returns an array of tweets
{{$scope.twitterResult.results}}
Run Code Online (Sandbox Code Playgroud) 第一次使用Angularjs.MVC 4,VS 2012
我有一个角度函数(AddRealTimeAlert),它可以添加一个警报(格式很好的div ...而不是通用的js警告框),以显示给用户.如果使用按钮调用该函数(请参阅下面的html,#addAlertButton),该函数可以正常工作.但是,如果函数是由同一个html文件或不同的html文件中的脚本标记调用的,则会中断.具体来说,angular.element(alertsController).scope()返回null.但是,angular.element(alertsController)不返回null; 它返回div.因此,除非通过单击按钮调用,否则scope()方法似乎不起作用.思考?
HTML(_Alerts.cshtml):
<div id="alertsDiv">
<div ng-controller="AlertsCtrl" id="alertsController">
<div ng-repeat="alert in alertBasket.alerts()" class="alert-box radius {{alert.type}}">{{alert.message}}</div>
<button class="btn" onclick="AddRealTimeAlert('my second alert!', 'success');" id="addAlertButton">Add Alert</button> //Clicking this does work!!
</div>
</div>
<script>
AddRealTimeAlert("my first alert!", "success"); //This does not work!!
</script>
Run Code Online (Sandbox Code Playgroud)
JS(alerts.js):
var alertModule = angular.module('rs-customer-portal', []);
alertModule.factory('alertBasket', function () {
var alerts = [];
var alertService = {};
alertService.addAlert = function (alert) {
alerts.push(alert);
};
alertService.alerts = function () {
return alerts;
};
return alertService; …Run Code Online (Sandbox Code Playgroud) 我想在AngularJS中使用一个指令,该指令应该允许0到1之间的十进制数.此外,它也可以允许"-1".
例如:-1有效0有效1有效0.12有效0.99有效1.01无效
如果您有任何建议,请告诉我.谢谢.
angularjs angular-ui angularjs-directive angularjs-scope angularjs-ng-repeat
我在div元素中有两个表.我想在模板加载时隐藏两个表.并希望根据条件显示它们.为此,我在div中创建了两个表,并在两个表中放置了ng-show属性.但是表格是可见的而不是隐藏的 我的代码是
如果我在div中放置相同的ng-show属性它会被隐藏,但是表格不会被隐藏.告诉我这里我做错了什么?帮助将是可观的
<table ng-modal="deferredquiz" ng-show="showdeferredquizz" ng-true-value="true" ng-false-value="false" class="ng-hide">
<tr>dddddddddddddddddddddd</tr>
<tr data-ng-repeat="question in quizdata.questions">
<td ng-switch="question.question_type">
</td>
</tr>
<tr>
</tr>
</table>
<table ng-show="showimmediatequiz" ng-true-value="yes" ng-false-value="no">
<tr>
</tr>
<tr>
<td><button ng-click="submitDeferredQuiz()">Submit</button></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud) javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat
我正在尝试实现用户身份验证系统.我读过有关401http状态代码和HTTP Auth拦截器模块的文章.
我已经用bower下载了模块并将其加载到我的app模块中.我还没有使用它但是我想使用当用户在浏览器中打开应用程序时该模块触发的相同事件来显示用户登录弹出窗口.
我所有的控制者都是孩子的CoreController.该CoreController解决当前用户.当应用程序加载时没有用户登录,因此我想显示发出事件的登录表单:( event:auth-loginRequired与http-auth-interceptor相同).
在这个CoreController我有另一个规则,正在侦听这个特定的事件(event:auth-loginRequired).如果检测到此事件,控制器将显示调用其stateid 的弹出窗口.
我的问题是,控制台是说,我已经正确地发出该事件,但我的听众不会被触发,因此登录弹出没有显示.
这是我的CoreController:
/**
* Index controller definition
*
* @scope Controllers
*/
define(['./../module', 'moment'], function (controllers, moment) {
'use strict';
controllers.controller('CoreController', ['$scope', '$rootScope', '$state', 'user', function ($scope, $rootScope, $state, user)
{
console.log('Core Controller Loaded');
$scope.loader = true;
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams)
{
$scope.loader = true;
});
$scope.$on('event:auth-loginRequired', function(event, toState, toParams, fromState, fromParams)
{
console.log('catch …Run Code Online (Sandbox Code Playgroud) 我想手动重新加载页面
$location.path('/account');
Run Code Online (Sandbox Code Playgroud)
正确移动到不同的页面,但我想使用
$location.path('/account/messages');
Run Code Online (Sandbox Code Playgroud)
在/ account/messages上重新加载页面,但它什么也没做.重装的正确代码是什么?
谢谢
亚历克斯
我试图通过followPerson()函数传递跟随者.如果我跟随Perers(123),这可以正常工作.但是,当我跟随角色({{follower.follower}})时,它不会发射.
{{follower.follower}}绝对有效,因为它以粗体显示.
<div ng-repeat="follower in followers.followers">
<b>{{follower.follower}}</b>
<a ng-click="followPerson({{follower.follower}})">Follow</a>
</div>
Run Code Online (Sandbox Code Playgroud) 我有以下问题:我在控制器中有一个函数,函数决定$ scope.name的值
app.controller('myController', ['$scope', function($scope) {
function myFunction() {
$scope.name = 'myName';
}
document.getElementById('my-id').addEventListener("click", myFunction);
}])
Run Code Online (Sandbox Code Playgroud)
由于多种原因,我无法使用ng-click.更新: 由于photoswipe gallery和socialshare,我无法使用ng-click .我想添加自定义FB共享,如果我使用ng-click它将关闭photoswipe打开的图像.请看这里的例子.打开图像,然后单击左上角的自定义共享按钮
注意,即使我在这里使用示例,它也不会将我的$ scope.name绑定到html.
如果我尝试记录它作为魅力的值,例如.
console.log($scope.name); //will work perfectly
Run Code Online (Sandbox Code Playgroud)
在html中它不会绑定值:
<div ng-controller="myController">
<button id="my-id">
<p>{{name}}</p>
</button>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个ui-router模板md-tabs,其中包含一些选项卡是静态的,其他选项卡是通过ng-repeat迭代数据模型的给定数组动态创建的.
在这些动态创建的选项卡中,有三个按钮可以执行以下操作
的move tab按钮调用同一控制器内的功能.$index当前显示的选项卡的值以及所需的方向(-1向左1移动,向右移动)将传递给该功能.
因此视图的HTML片段如下所示:
<md-content flex layout-padding>
<md-card>
<md-tabs md-dynamic-height md-border-bottom md-autoselect md-swipe-content md-selected="selectedTab">
<md-tab id="{{ 'tab' + $index }}" data-ng-repeat="tab in tabs track by $index">
<md-tab-label>Tab {{ $index + 1 }}</md-tab-label>
<md-tab-body>
<md-card-title>
<md-card-title-text>
<div flex layout="row">
<div flex><span class="md-headline">Tab {{ $index + 1 }}</span></div>
<div flex align="right">
<md-button ng-click="moveTab(-1, $index)">Move tab left</md-button>
<md-button ng-click="moveTab(1, $index)">Move tab right</md-button>
</div>
</div>
</md-card-title-text>
</md-card-title> …Run Code Online (Sandbox Code Playgroud) tabs angularjs angularjs-scope angular-ui-router angular-material
我有一个角度控制器,使用$ http.get()方法获取数据.我将响应数据分配给$ scope.foo和$ scope.bar.
然后我使用ng-model ="foo"将$ scope.foo绑定到输入字段,然后使用ng-click ="buttonClick()"将$ scope函数$ scope.buttonClick绑定到一个按钮.
当我更改输入字段的值并选择按钮时,$ scope.buttonClick同时输出$ scope.foo和$ scope.bar,它们似乎与新输入的值匹配.这很奇怪,因为我只绑定了$ scope.foo.为什么会发生这种情况,我该如何解决?
控制器:
angular.module('app')
.controller('controller', ($scope, $http) => {
$document.ready(() => {
$http.get('/data').then((res) => {
$scope.foo = res.data;
$scope.bar = res.data;
});
$scope.buttonClick = () => console.log($scope.foo, $scope.bar);
});
});
Run Code Online (Sandbox Code Playgroud)
(使用ES6语法) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions