我有一个主要的js文件,它在控制器中有监视 -
(function () {
'use strict';
angular
.module('mainmodule')
.controller('file1Ctrl', file1Ctrl);
file1Ctrl.$inject = ['$scope','data'];
function VendorDetailCtrl($scope,data){
var vd = this;
vd.data.id = data.id;
activate();
function activate() {
$scope.$watch("vd.data.id", function (newValue, oldValue) {
if (newValue !== oldValue) {
callmainfunction();
}
});
}
})();

然后我在另一个js文件中有另一个指令 -
(function () {
'use strict';
angular
.module('mainmodule')
.directive('file2', file2)
function file2() {
var directive = {
restrict: 'E',
templateUrl: 'file2.html',
scope: {
data: '=',
},
controller: ['$scope',file2Ctrl],
controllerAs: 'vm',
bindToController: true
}
return directive;
function file2Ctrl($scope, file2Ctrl) {
var vm = this;
activate();
function activate(){
neededfunc();
}
function neededfunc(){
//do something
}
})();

我需要在第一个js文件中调用watch中的neededfunc()
。我甚至尝试在指令中添加监视但它只在页面重新加载时触发,我需要在单击按钮Submit()
后运行它。单击按钮Submit()
时会触发手表。所以我需要知道如何在手表中使用该功能,或者在id
值发生变化时我可以调用该功能。
答案 0 :(得分:0)
向$ scope添加函数。$ root帮助。以下是代码 -
// Declare the function
$scope.$root.neededFunction = function(){
//Do Something here
}
//Call the function
$scope.$root.neededFunction();