我试图为Angular构建一个指令,该指令放置一个标签并选择所有必需的类。我的指令代码如下所示:
forEach()
我称之为使用它:
return {
restrict: 'E',
scope: {
text: '=',
model: '=',
options: '='
},
template: "<div class='form-group'><label class='control-label'>{{text}}</label><select class='form-control' ng-model='model' ng-options='option.env as option.name for option in options'></select></div>"
在我的控制器中,环境定义如下:
<select-input text="'Environment'" options="environments" model="request.Environment"></select-input>
但是,当Angular将指令转换为HTML时,会导致
$scope.environments = [
{ name: 'PROD', env: 'prod' },
{ name: 'N', env: 'n0' },
{ name: 'N1', env:'n1' },
{ name: 'N0', env: 'n2' },
];
我很困惑为什么字符串:有值属性..
答案 0 :(得分:3)
使用追踪&#39;属性&#39; 。
像这样:
<select ..... ng-options="option.env as option.name for option in options track by option.env"
答案 1 :(得分:0)
您并不需要担心//Function to inject our custom WHERE clauses
function so_34594266_post_where( $where, &$wp_query )
{
//Somehow this function needs to be made "aware" of the $id variable,
//either a class-level variable, global (yuck) or some function call
if( $wp_query->is_main_query() )
{
$where = "keyone = 1 or FIND_IN_SET($id, `keytwo` ) <>0";
}
return $where;
}
//Tell WordPress to use our function
add_filter( 'post_where', 'so_34594266_post_where' );
//Get our posts (this could also be a WP_Query object or whatever else)
$posts = get_posts( '...your stuff here...' );
//Tell WordPress to stop using our function
remove_filter( 'post_where', 'so_34594266_post_where' );
属性是什么,因为它在内部使用。
请记住,value
可以配置为将不同类型的值传递给模型...字符串,对象,数组,数字等。
因此,检查您所拥有的值时,您明确表示您为其配置的ng-options
值为字符串,如果选中,则会为模型分配typeof
。
要记住的另一件事是,在渲染过程中角度必须在选择上设置现有模型值时,您不会看到反向绑定
说实话,我从来没有见过你指出的这个价值协议。当您因错误的"prod"
语法而被绊倒时,它看起来很有帮助。我猜这是一个功能,已经添加到更新版本的角度......但我可能是错的,这只是因为我没有必要在选项标签级别挖掘dom而
答案 2 :(得分:0)
基于charliefl的回复,我将选项的来源更改为对象
$scope.environments = {
prod: 'PROD',
n0: 'N',
n1: 'N1',
n2: 'N2'
};
并将ng-options子句修改为key as value for (key,value) in options
。根据文档,这是一个select子句,select和options的值将是属性名称,在这种情况下,是prod,n0等,它们对应于模型环境的值值。