在AngularJS中,我想创建一个文件,在其中创建Function sheetExists(sheetToFind As String) As Boolean
'copied from:
'https://stackoverflow.com/questions/6040164/excel-vba-if-worksheetwsname-exists
'by Dante is not a Geek
'https://stackoverflow.com/users/571433/dante-is-not-a-geek
Dim mySheet As Worksheet
sheetExists = False
For Each mySheet In Worksheets
If sheetToFind = mySheet.Name Then
sheetExists = True
Exit Function
End If
Next mySheet
End Function
和set
方法进行设置,然后获取一些值。我已经创建了文件get
(在下面发布),但是我不完全知道如何在控制器文件中设置和获取该文件的值。所以有人可以指导我如何从控制器文件中设置和获取myAppModel
文件中的channel_list
变量吗?
myAppModel.js
myAppModel
myCtrl.js
var channel_list;
function set_channel_list(channels) {
channel_list = channels;
}
function get_channel_list() {
return channel_list;
}
答案 0 :(得分:0)
您可以为此使用服务。您可以在另一个文件中使用此服务。
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope, channelService) {
$scope.test = channelService.getMyChannel();
});
app.service('channelService', function() {
this.channel_list = [];
this.set_channel_list = function(channels) {
this.channel_list = channels;
};
this.get_channel_list = function() {
return this.channel_list;
};
this.getMyChannel= function() {
return 'ABC';
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
{{test}}
</div>
详细了解Angularjs here
中的服务答案 1 :(得分:0)
您应该将文件包含在HTML中
/// myCtrl.js
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
</script>
<script src="myAppModel.js"></script>
<body>
...
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
get_channel_list();
});
</script>
现在,您可以在myCtrl.js中使用 set_channel_list 和 get_channel_list 。您可以像其他人建议的那样创建角度服务,但仅靠它无法实现您想要的。
随着应用程序的增长,您将需要研究捆绑器和Webpack,Gulp或Rollup等工具。然后,您可以例如(使用ES6导入)执行此操作:
myAppModel.js
var channel_list;
export function get_channel_list() { ... }
myCtrl.js
import { get_channel_list } from 'myAppModel';
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
get_channel_list();
});
捆绑程序会生成一个文件(例如 main.js ),然后您可以将该文件包含在模板中。
main.html
...
<script src="main.js"></script>
...