小编Pan*_*kar的帖子

检查AngularJS模块是否已自举

我有一个带有ASP.NET应用程序的iframe,它包含UpdatePanel.我开始在应用程序中使用Angular,但是因为.NET回发而无法正常工作.

要解决这个问题,我使用了这个解决方案

with (Sys.WebForms.PageRequestManager.getInstance()) {
            add_endRequest(onEndRequest); // regester to the end Request
        }

function onEndRequest(sender, args) {
    angular.bootstrap($('#mainDiv'), ['defaultApp']);
    var rootscope = angular.element('#mainDiv').scope();
    if (rootscope) {
        rootscope.$apply();
    }
}
Run Code Online (Sandbox Code Playgroud)

而且效果很好.

问题是当我在ASP.NET页面中使用另一个ng-controller动态加载不同的用户控件时,Angular会抛出一个错误,说明该应用已经加载:

App Already Bootstrapped with this Element
Run Code Online (Sandbox Code Playgroud)

所以问题是:我如何检查应用程序是否已经自举?我可以重装这个模块吗?我可以从元素中删除它而不是再次引导它吗?

谢谢.

javascript asp.net asp.net-mvc angularjs angularjs-bootstrap

9
推荐指数
2
解决办法
7297
查看次数

防止`ng-include`创建隔离范围.AngularJS

ng-include src在HTML中的多个地方使用指令.每个ng-include都为自己创造了一个孤立的范围,这显然给我带来了很多麻烦.

例如.

<div ng-controller="parent">
    <div ng-include src="'id1'">
    </div>
    <div ng-include src="'id2'">
    </div>
    <div ng-include src="'id2'">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在上面提到的html中,创建了4个范围.在父级中controller定义了1,默认情况下每个都创建了3个ng-include src.

是否可以防止ng-include为自己创建一个孤立的范围?如果不可能那么有一个解决方法吗?

javascript directive angularjs angularjs-directive angularjs-ng-include

8
推荐指数
1
解决办法
5246
查看次数

如何按键对ng-options中的数组进行排序?

有这样的数组:

month: Array[13]0: "M"1: "January"2: "February"3: "March"4: "April"5: "May"6: "June"7: "July"8: "August"9: "September"10: "October"11: "November"12: "December"
Run Code Online (Sandbox Code Playgroud)

我做:

ng-options="key as value for (key, value) in data.month | orderBy:key"
Run Code Online (Sandbox Code Playgroud)

但我得到未分类的选择列表.

javascript select angularjs angularjs-filter angularjs-ng-options

8
推荐指数
1
解决办法
2万
查看次数

在AngularJS中的另一个控制器中使用控制器

为什么我无法绑定到第二个控制器内的控制器变量?

<div ng-app="ManagerApp">
    <div ng-controller="MainCtrl">
        Main: 
        <div ng-repeat="state in states">
            {{state}}
        </div>
        <div ng-controller="InsideCtrl as inside">
            Inside:
            <div ng-repeat="state in inside.states2">
                {{state}}
            </div>
        </div>
    </div>
</div>

var angularApp = angular.module('ManagerApp', []);

angularApp.controller('MainCtrl', ['$scope', function ($scope) {
    $scope.states = ["NY", "CA", "WA"];
}]);

angularApp.controller('InsideCtrl', ['$scope', function ($scope) {
    $scope.states2 = ["NY", "CA", "WA"];
}]);
Run Code Online (Sandbox Code Playgroud)

示例:https://jsfiddle.net/nukRe/135/

第二次ng-repeat不起作用.

binding controller angularjs angularjs-controller angularjs-controlleras

8
推荐指数
1
解决办法
1万
查看次数

未捕获错误:模块'myApp'不可用!(AngularJS)

我正在研究角度教程,我在开始时遇到了问题.加载myApp模块会引发错误.如教程中所述,这应该是创建控制器的三种方法之一.

这是我正在研究的教程的打印屏幕: 在教程中创建控制器

当我刷新网页时,我在Chrome控制台中收到此错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:nomod] Module 'myApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
Run Code Online (Sandbox Code Playgroud)

这是我的HTML文件

  <html ng-app="myApp">
        <head>
        </head>
        <body>
            <h1>Hello world!</h1>   

            <div ng-controller="MainController">
                {{ 2+2 }}
                <br>
                {{ val }}
            </div>
            <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
            <script src="app.js">
        </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

这是我的app.js文件

var myApp = angular.module('myApp', []);

var MainController = function($scope){
    $scope.val …
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs angularjs-directive angularjs-controller

8
推荐指数
2
解决办法
1万
查看次数

两个相同值的下降.如果用户在第一个下拉列表中选择一个值,则必须在第二个下拉列表中禁用该值

我是angularjs的新手.我在html中有两个相同值的下拉菜单.在这里,我希望每当用户在第一个下拉列表中选择一个值,然后该值想要在第二个下拉列表中禁用.

var app = angular.module('plunker', [ 'ngRoute' ]);

app.controller('queryCntrl', function($scope) {
	$scope.names = [ "Ali", "Raj", "Ahm", "Sbm", "Lvy" ];
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<title>Fund Transfer</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="lib/angular.min.js"></script>
<script src="lib/angular-route.min.js"></script>
    <script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.22/angular.js" data-semver="1.2.22"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="queryCntrl">

	From  <select ng-model="selectedName"
		ng-options="x for x in names">
	</select>
</div>
<div>
	<br> To <select ng-model="selectedName"
		ng-options="x for x in names">
	</select>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs angularjs-directive ng-options

8
推荐指数
1
解决办法
680
查看次数

angular-chartjs条形图中每列的颜色不同

我正在我正在进行的项目中使用angular-chartJS,并且我需要为条形图中的每个条形图使用不同的颜色.

帆布:

<canvas id="bar" class="chart chart-bar" data="medal_data" labels="medal_ticks"></canvas>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.medal_ticks = ['Gold', 'Silver', 'Bronze', 'Not passed'];
$scope.series = ['Medaljer'];
$scope.medals_colours= ['#087D76', '#B3BC3A', '#38B665', '#8B4A9D'];

$scope.medal_data = ['1', '5', '2', '0'];
Run Code Online (Sandbox Code Playgroud)

我试图将属性添加colours="medals_colours"到我的画布,唯一的问题是它只使用数组中的第一种颜色,我想要的是每种颜色代表每一列.所以,#087D76用于表示Gold,#B3BC3ASilver

javascript bar-chart angularjs chart.js angular-chart

7
推荐指数
1
解决办法
3860
查看次数

使用Angular监视工厂变量

我的单页应用程序有2个控制器:第一个用于我的主菜单,第二个用于视图.他们与这家工厂共享数据

myApp.factory('MenuFactory', function(){
var factory = {
    Monitor: "doneJob",
    Control: "",
    Report: "",
    Display: "",
    setMonitor: function(value){
        factory.Monitor = value;
    },
    setControl: function(value){
        factory.Control = value;
    },
    setReport: function(value){
        factory.Report = value;
    },
    setDisplay: function(value){
        factory.Display = value;
    }

};
return factory;
});
Run Code Online (Sandbox Code Playgroud)

我想看看改变factory.Control,但我不能让它有效.

当我尝试这个:

$scope.$watch(function(){MenuFactory.Control}, function(NewValue, OldValue){
    console.log(NewValue + ' ' + OldValue);
    console.log(MenuFactory.Control);
}, true);
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到"undefined undefined"和"Process".这个工厂的$ watch实现有什么问题吗?

javascript angularjs angularjs-scope angularjs-factory angularjs-watch

7
推荐指数
1
解决办法
1万
查看次数

角度材料中的条件弯曲

给定引导布局定义

ng-class="{'col-sm-6':vm.data.mode === 'ADD', 'col-sm-3': vm.data.mode === 'EDIT'}"
Run Code Online (Sandbox Code Playgroud)

什么是角材料等价物?(如果vm.data.mode ==='ADD',则设置flex ="50",如果vm.data.mode ==='EDIT',则设置flex ="25")

html twitter-bootstrap angularjs twitter-bootstrap-3 angular-material

7
推荐指数
1
解决办法
4169
查看次数

在Angular 2,Ionic 2中返回一个promise值

我熟悉Angular2,Ionic2,也许我误解了一些东西,但希望得到帮助.

我有一个名为'CurrentUser'的提供程序,用于存储和获取LocalStorage数据.

     getProfile(): any {
      this.local.get("user-profile").then((profile) => {
      var val = JSON.parse(profile);
      return val;
  });
}
Run Code Online (Sandbox Code Playgroud)

这个函数getProfile()返回一个promise

如果我将此提供程序注入组件中.在从组件调用此函数时,如何在分配数据之前等待解析的承诺?

@Component({
   templateUrl: 'build/pages/book_meeting/book_meeting.html'
})
 export class BookMeetingPage implements OnInit {
 constructor(public navCtrl: NavController, private _currentUser: CurrentUser) {
}

profile: IProfile;

   ngOnInit(): any {
   this.profile = this._currentUser.getProfile();
   console.log(this.profile);//returns undefined
  }
}
Run Code Online (Sandbox Code Playgroud)

promise typescript ionic2 angular

7
推荐指数
1
解决办法
2万
查看次数