尝试为模块设置一些帮助器值.尝试服务和价值,但没有帮助:
var finance = angular.module('finance', ['finance.services'])
.value("helpers", {
templatePath: function (name) {
return '/areas/scripts/finance/templates/' + name + '/index.html';
}
})
.config(['$routeProvider', 'helpers', function ($routeProvider, helpers) {
$routeProvider.
when('/', {
templateUrl: helpers.getTemplatePath('dashboard'),
controller: DashboardController
})
.when('/people', {
templateUrl: '/areas/scripts/app/people/index.html',
controller: PeopleController
})
.otherwise({
redirectTo: '/dashboard'
});
}]);
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
这可能看起来像一个愚蠢的问题,但我需要知道如何观看页面的整个DOM并在它发生变化时重新编译它.基本上这就是AngularJS默认使用数据绑定所做的事情,但我需要在DOM中的任何内容发生更改时发生,而不仅仅是绑定.原因是我有一个完全用HTML,Javascript和PHP构建的应用程序.它是一个单页面应用程序,它有一个主页面,并将PHP注入该页面内的DIV包装器.
我想对它进行一些修改,但希望保持我的代码与原始代码完全分开.为此,我需要能够在注入具有自己的DOM结构的新PHP文件时重新编译DOM.到目前为止我所看到的似乎没有起作用.
app.directive("watch", function () {
return function (scope, element, attr) {
scope.$watch("watch", function(oldValue, newValue) {
if(newValue) {
console.log("there is a new value");
console.log("the new value is " + newValue);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
我在<body>标签中添加了watch属性,但它似乎不起作用,当更改dom时,没有任何记录.最后我想用$ compile替换console.log,但我首先需要让手表正常工作.有人能指出我做错了吗?
我需要使用的函数非常少,如下所示:
data-ng-disabled="_isEmpty(grid.view) || view != 'preview'"
Run Code Online (Sandbox Code Playgroud)
我做的是:
$scope._isEmpty = _.isEmpty;
Run Code Online (Sandbox Code Playgroud)
所以_isEmpty实际上是lodash函数.
这是合理的事吗?如果是这样,那么我将在哪里编写上述代码?我应该在我的appController中编码吗?我还应该将._isEmpty附加到$ scope或$ rootscope吗?我听说有人在谈论提供服务,然后注入这个.但是对于几行代码来说,这似乎有些过分.