从HTML页面调用Bootstrap函数
Call Bootstrap function from HTML page
Am试图调用angular js函数,但它说"无法读取属性‘忘记’未定义"请帮助解决此
我使用以下js代码
var rootApp = angular.module('rootApp', ['firstApp','secondApp']);
var firstApp = angular.module('firstApp', []);
firstApp.controller('FirstController', function($scope) {
alert("First app ");
});
var secondApp = angular.module('secondApp', []);
secondApp.controller('SecondController', function($scope) {
alert("Second app. ");
$scope.forget = function () {
alert("forget function calling ");
}
});
在html中,我使用下面的行来调用这个函数。
angular.element(document.getElementById('SecondController')).scope().forget();
将此代码放入控制器中
$scope.forget = function () {
alert("forget function calling ");
}
我更希望您有一些div的id,您使用的是ng-controller='SecondController'。例如,
<div id="controllerContainer" ng-controller='SecondController'>
</div>
然后使用以下代码调用函数:
var $scope = angular.element($('#controllerContainer')).scope();
$scope.forget();
$scope.$apply();
我使用过jQuery选择器,但您也可以尝试使用纯javascript选择器。
通过jQuery选择器检索范围是一种破解方法
<div ng-controller="MainCtrl">
<button ng-click="forget()">Forget</button>
</div>
div中的DOM元素可以访问MainCtrl
的作用域,所以只需要在控制器中定义函数:
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.forget = function forget() {
// insert forget logic here
}
}]);
请注意用于定义控制器的数组表示法。如果你想缩小代码,这一点很重要,因为angular在很大程度上依赖于依赖字符串值。这里有一个样品plnkr供你试验。
我不知道你到底想做什么,但Angular的工作方式不同。我猜您正试图在加载DOM时调用"forget()"。如果这是一种情况,那么你的做法是错误的。
错误的方法angular.element(document.getElementById('SecondController')).scope().forget();
最佳方法
var rootApp = angular.module('rootApp', ['firstApp', 'secondApp']);
var firstApp = angular.module('firstApp', []);
firstApp.controller('FirstController', function ($scope) {
alert("First app ");
});
var secondApp = angular.module('secondApp', []);
secondApp.controller('SecondController', function ($scope) {
alert("Second app. ");
$scope.forget = function () {
alert("forget function calling ");
}
init();
function init() {
$scope.forget();
}
});
否则,若你们试图在点击按钮或其他什么的时候调用这个"忘记"方法,那个么你们需要遵循下面的方法。
<div id="controllerContainer" ng-controller='SecondController'>
<input type='button' ng-click='forget()' value='Click me'>
</div>
相关文章:
- Bootstrap-“;未捕获的类型错误:undefined不是函数;
- HTML5(Bootstrap)通过函数调用运行动画
- 从 Bootstrap Typeahead 中的数据属性中调用函数
- Bootstrap/JQuery-单选按钮组事件函数
- 将函数绑定到Twitter Bootstrap Modal Ajax Complete
- Twitter Bootstrap Popover添加了一个带有事件的回调函数
- 如何在Bootstrap 2.3.2中弹出dropup之前调用函数
- Bootstrap.dropdown()“;未捕获的类型错误:undefined不是函数;
- JQUERY hover() 函数不适用于其子函数,使用 bootstrap 框架
- Bootstrap Modal JS Uncatch TypeError: undefined 不是函数
- 复选框 Javascript 函数在 Bootstrap modal 中不起作用
- Meteor 和 Bootstrap 表,如何调用 detailFormatter 函数
- AngularJS UI Bootstrap 模态无法从作用域执行函数
- Angularjs twitter bootstrap.错误:element.focus() 不是一个函数
- 与 Bootstrap 按钮关联的 jQuery 函数仅执行一次
- Twitter bootstrap typeahead 自定义按键 ENTER 函数
- 从HTML页面调用Bootstrap函数
- 不止一个下拉菜单扰乱了jQuery/Bootstrap函数
- 美元.notify不是ajax调用后MVC中的Bootstrap函数
- React调用bootstrap函数