TL; DR:我需要一种覆盖默认选项的方法,使用提供程序(如任何其他角度模块 - 随机示例)提供我的Angular Material(特别是在Material Dialog上).
我一直在寻找一种方法来自定义默认选项Angular Material Modal,但没有任何可用的结果.
就像我在其他插件/模块上使用的那样,这种方式可以通过使用provider
.看看材料的核心(1.0.8)我试图使用这样的setDefaults
方法设置选项(假设我只想暂时禁用背景):
app.config(['$mdDialogProvider', function($mdDialogProvider){
console.log($mdDialogProvider);
// ^ $get/addMethod/addPreset/setDefaults
var defaults = {
options: function(){
return {
hasBackdrop: false
}
}
}
$mdDialogProvider.setDefaults(defaults);
}]);
Run Code Online (Sandbox Code Playgroud)
现在当我检查onComplete
回调选项时:
因此,您可以看到该hasBackdrop
选项已更新,但模式不再起作用,所以我想我错过了一些东西.
你知道如何以适当的方式扩展角度默认值吗?
谢谢
更新:没有.setDefaults
活动的选项对象(de initial state)
注意:我已从他们的核心复制transformTemplate
并添加到我的默认对象中,但结果是相同的.我可以看到DOM更新,控制台没有错误,但模态不可见.
我正在研究一个项目,其中一个任务是使背景静态并覆盖整个页面.关于这个我找到了这个教程,使用"很棒,简单,渐进的CSS3方式".我的问题是我有更多的页面,每个页面都有不同的背景,所以我必须把背景图像放在<body>
这样:
<body style="background-image:url(images/mainBg_1.jpg);">
Run Code Online (Sandbox Code Playgroud)
(还有css样式<body>
,而不是"html",就像在例子中)
正如您在该链接中看到的,IE有过滤器,如下所示:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.**myBackground.jpg**', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='**myBackground.jpg**', sizingMethod='scale')";
Run Code Online (Sandbox Code Playgroud)
问题是"myBackground.jpg"是从<body>
标签中获取的,正如我上面所写,因此我不能直接在css中编写(每个页面都有不同的背景).
有没有办法使用jQuery添加这些过滤器?我成功地从body中获取了图像的路径,因此我只需要将其粘贴到此代码中,然后使用jQuery for IE <= 8添加.
谢谢你的回答,跟着他们我成功解决了我的问题.所以,如果有人想要代码:
$(function(){
var mu = $.browser;
if (mu.msie && mu.version < 9) {
var curBg = $('html').attr('style');
curBg = curBg.split('(');
curBg = curBg[1].split(')');
$('html').css({
"filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')",
"-ms-filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')"
});
}
});
Run Code Online (Sandbox Code Playgroud) 我没有找到一个很好的答案我的问题,所以我开始一个新的主题.我有文件english.php,其中包含$ lang ['fname'] ="名字"等变量; .我还有header.php,其中包括english.php:include('english.php');. 现在,header.php包含在另一个php页面中,比如说addInfo.php.如果我在addInfo.php中写:echo $ lang ['fname']; 它显示了我的"名字",但是如果我在addInfo.php中写一个函数,作为示例函数添加(){echo $ lang ['fname'];}然后添加(); (我也试过echo added())它不想显示值("名字").有人知道这个样本(我认为)问题的解决方案.我准备尝试所有答案了.此致,StefanZ
我有几个scss变量看起来像:
$box-bg1: #7a8360;
$box-bg2: #918261;
$box-bg3: #6a8177;
$box-bg4: #686f5e;
Run Code Online (Sandbox Code Playgroud)
我想在for中使用这些变量,例如:
@for $i from 1 through 4 {
.locationBox:nth-child(#{$i}) { background: $box-bg#{$i}; }
}
Run Code Online (Sandbox Code Playgroud)
编译代码后我得到这个错误:语法错误:未定义的变量:"$ box-bg",看起来像#{$i}
变量对我的代码没有任何意义.有没有办法在这样的循环中使用变量?
注意:我也使用指南针
angularjs ×1
background ×1
compass-sass ×1
css ×1
css3 ×1
decorator ×1
function ×1
javascript ×1
jquery ×1
php ×1
sass ×1
variables ×1