这个demo是基于angular实现的,与使用普通方法没有本质区别。当用户登录后,首先进入/luci/view/web/home.htm
, 在这个页面bootstrap angular, 如下:
<script>
seajs.config({
base:'<%=media%>',
alias:{
'app':'javascript/app.js'
}
});
seajs.use(['app'], function(app) {
angular.bootstrap(document, ['app']);
});
</script>
配置router,当请求到index状态时,会使用StatusFactory请求页面中设置的全局API.System.Status链接,并返回相应的数据;
$stateProvider
.state('index', {
url: '/',
templateUrl: _G.base.res + '/views/content/status.html',
controller:'StatusCtrl',
resolve:{
status:['StatusFactory', function(StatusFactory) {
return StatusFactory.query();
}]
}
})
首先要在/lua/controller/api目录下注册相应的entry。
entry({"api", "system", "status"},call("getStatusInfo"), (""), 128)
然后在/lua/service/module
目录下的status.lua中会处理API.System.Status请求,通过luci.tools.status.wifi_networks()
可以获取wifi链接设备数;
function getAssociatedWifiCount()
local wifi_networks = luci.tools.status.wifi_networks()
local count = 0
for k, v in pairs(wifi_networks) do
local networks = v["networks"]
for i, j in pairs(networks) do
local assoclist = j["assoclist"]
print("result is " .. 'myadd(1, 1)')
for m, n in pairs(assoclist) do
count = count + 1
end
end
end
return count
end
登录页面:
登录成功页面:
登录成功设置页: